用ASP.NET Web API技术开发HTTP接口(一)
开发工具
Visual Studio 2013
SQL Server 2008 R2
准备工作
启动Visual Studio 2013,新建一个ASP.NET Web应用程序,命名为SimpleAPI。选择Empty模板,并勾选“Web API”,无身份验证,不添加单元测试。
准备用SQL Server数据库来存储数据,因此要安装下Entity Framework框架,免去写繁琐SQL语句的麻烦。打开工具-》程序包管理器控制台输入以下命令安装。
Install-Package EntityFramework
在Web.config文件里配置数据库连接代码,打开这个文件,在configuration节点内添加连接字符串,其中星号部分换成SQLServer的数据库名称。
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=Localhost;Initial Catalog=******;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
</connectionStrings>
建立数据模型
在Models目录下新建一个名为Friend.cs的类文件。
public class Friend
{
public int ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Address { get; set; }
public string City { get; set; }
public string PostalCode { get; set; }
public string Country { get; set; }
public string Notes { get; set; }
}
同时建立数据库的Context类文件。
public class FriendContext : DbContext
{
public FriendContext()
: base("name=DefaultConnection")
{
}
public DbSet<Friend> Friends { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}
说明:
1、name=DefaultConnection要和Web.config中的数据库连接字符串中的name一致。
2、OnModelCreating重载函数的作用是让创建的数据表名称为单数格式,即为Friend,而不是Friends。
然后在程序包管理控制台启用Migrations,生成Migrations目录,以及目录中的Configuration.cs配置文件。
Enable-Migrations
再依次执行下面2条命令,就可以把刚才建立的数据模型导入到SQLServer中了,很方便。
Add-Migration xxx
Update-Database
其中xxx可任意填写,VS会生成一个名为201508051223177_xxx.cs文件,201508051223177是当前时间,文件包含Up和Down两个方法。现在我们再到SQLServer中刷新下查看,会发现一个名为Friend的数据表就建立好了。
下面利用Configuration.cs中的Seed函数添加一些测试数据,在Seed方法下添加以下模拟数据。
var friend = new Friend
{
FirstName = "三",
LastName = "张",
Address = "南京西路",
City = "上海",
Country = "中国",
PostalCode = "200041",
Notes = "www.zhaomu.com"
};
context.Friends.Add(friend);
friend = new Friend
{
FirstName = "四",
LastName = "李",
Address = "三里屯",
City = "北京",
Country = "中国",
PostalCode = "100600",
Notes = "www.sohu.com"
};
context.Friends.Add(friend);
friend = new Friend
{
FirstName = "五",
LastName = "王",
Address = "花城大道",
City = "广州",
Country = "中国",
PostalCode = "510623",
Notes = "www.163.com"
};
context.Friends.Add(friend);
然后执行Update-Database
命令后,这些数据就成功导入到SQL Server的数据表里面了。
创建控制器
在Controllers目录下添加控制器,选择“Web API 2 控制器 - 空”,我们将手工编写API程序的读取、添加、修改、删除各常用接口。控制器文件命名为FriendController.cs。
读取Get方法,在FriendController.cs中添加以下代码。
private FriendContext db = new FriendContext(); public IEnumerable<Friend> Get()
{
return db.Friends.AsEnumerable();
}
编译后,我们访问 http://localhost:61570/api/friend(61570是随机端口),如果一切正常的话会出现以下XML格式的数据,说明数据读取成功。
转换成json格式显示
现在比较流行json格式的API接口数据,如果我们要让数据以json格式显示,需要修改App_Start目录下的WebApiConfig.cs文件,在//Web API 配置和服务的注释下添加以下代码:
config.Formatters.Remove(config.Formatters.XmlFormatter);
var jsonFormatter = config.Formatters.JsonFormatter;
jsonFormatter.SerializerSettings.Formatting = Newtonsoft.Json.Formatting.Indented;
jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
说明:第一行是去掉默认的XML格式,这样输出数据就会以json格式显示,第三行是将输出结果缩进显示,第四行则是将字段名称改成camelCase格式,即postalCode这样的json统一格式。然后我们再次运行,发现结果就是我们想要的了。
在第二部分我们将继续完成用ASP.NET Web API技术对数据进行添加、修改和删除的操作,接着我们会使用一款很好用的接口测试工具Rest Client在浏览器上对刚刚开发好的API接口进行实际运行。
用ASP.NET Web API技术开发HTTP接口(一)的更多相关文章
- 用ASP.NET Web API技术开发HTTP接口
开发工具 Visual Studio 2013 SQL Server 2008 R2 准备工作 启动Visual Studio 2013,新建一个ASP.NET Web应用程序,命名为SimpleAP ...
- 用ASP.NET Web API技术开发HTTP接口(二)
在第一部分,我们创建了一个基本的ASP.NET Web API项目,新建成功了数据表,然后添加了一些测试数据,最后创建了API控制器,用json格式把数据表里面的内容成功输出到浏览器上.接下来我们将继 ...
- ASP.NET WEB API微信支付通知接口,返回xml数据,微信服务器不识别问题
原文:ASP.NET WEB API微信支付通知接口,返回xml数据,微信服务器不识别问题 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/MrTra ...
- 水果项目第3集-asp.net web api开发入门
app后台开发,可以用asp.net webservice技术. 也有一种重量级一点的叫WCF,也可以用来做app后台开发. 现在可以用asp.net web api来开发app后台. Asp.net ...
- Asp.Net Web API开发微信后台
如果说用Asp.Net开发微信后台是非主流,那么Asp.Net Web API的微信后台绝对是不走寻常路. 需要说明的是,本人认为Asp.Net Web API在开发很多不同的请求方法的Restful ...
- 新作《ASP.NET Web API 2框架揭秘》正式出版
我觉得大部分人都是“眼球动物“,他们关注的往往都是目光所及的东西.对于很多软件从业者来说,他们对看得见(具有UI界面)的应用抱有极大的热忱,但是对背后支撑整个应用的服务却显得较为冷漠.如果我们将整个“ ...
- ASP.NET Web API 应用教程(一) ——数据流使用
相信已经有很多文章来介绍ASP.Net Web API 技术,本系列文章主要介绍如何使用数据流,HTTPS,以及可扩展的Web API 方面的技术,系列文章主要有三篇内容. 主要内容如下: I 数据 ...
- ASP.NET Web API 2框架揭秘
ASP.NET Web API 2框架揭秘(.NET领域再现力作顶级专家精讲微软全新轻量级通信平台) 蒋金楠 著 ISBN 978-7-121-23536-8 2014年7月出版 定价:108.0 ...
- 适用于app.config与web.config的ConfigUtil读写工具类 基于MongoDb官方C#驱动封装MongoDbCsharpHelper类(CRUD类) 基于ASP.NET WEB API实现分布式数据访问中间层(提供对数据库的CRUD) C# 实现AOP 的几种常见方式
适用于app.config与web.config的ConfigUtil读写工具类 之前文章:<两种读写配置文件的方案(app.config与web.config通用)>,现在重新整理一 ...
随机推荐
- PHP判断文件大小是MB、GB、TB...
<?php date_default_timezone_set ("PRC" ); function getFilePro($fileName){ if (!file_exi ...
- C#操作Access时Parameters集合的使用方法(转)
按照C#操作Sql Server数据库的方式是不一样的,使用时发现占位符数据会混乱. 查阅相关资料及测试后,总结出这样一套使用方法. 方法: public bool TsqlExecute(strin ...
- 一个命令永久禁用Win10驱动程序强制签名
https://blog.csdn.net/xiaodingqq/article/details/80093888
- [ jenkins ] 基础安装及权限管理
1. 安装 jenkins 在安装 jenkins 之前需要 java 的支持 (1)安装 jdk1.8 [root@192.168.118.17 ~]#tar xf jdk-8u77-linux-x ...
- curl实现put请求
<?php function curlrequest($url,$data,$method='post'){ $ch = curl_init(); //初始化CURL句柄 curl_setopt ...
- 【Leetcode_easy】868. Binary Gap
problem 868. Binary Gap solution1: class Solution { public: int binaryGap(int N) { ; vector<int&g ...
- 【linux学习笔记四】文件搜索命令
一 文件搜索 locate //在后台数据库中按文件名搜索 搜索速度更快 locate 文件名 //locate命令所搜索的后台数据库 /var/lib/mlocate //更新数据库 updated ...
- rem设置网页字体大小
「rem」是指根元素(root element,html)的字体大小,好开心的是,从遥远的 IE6 到版本帝 Chrome 他们都约好了,根元素默认的 font-size 都是 16px.这样一个新的 ...
- 记联想SR850 Raid配置的一个bug
管理raid阵列时,如果要删除某个指定的阵列,则需要选中阵列名而不能选中虚拟磁盘.如果选中的是虚拟磁盘,点击删除后,会删除整个阵列列表里的第一个阵列,而非虚拟磁盘所在的阵列. 过程如下 联想SR850 ...
- ASP.NET CORE(C#)与Spring Boot MVC(JAVA)
干货分享:ASP.NET CORE(C#)与Spring Boot MVC(JAVA)异曲同工的编程方式总结 目录 C# VS JAVA 基础语法类比篇: 一.匿名类 二.类型初始化 三.委托(方 ...