什么是 ASP.NET web API
官方的解释是
ASP.NET Web API is a framework that makes it easy to build HTTP services that reach a broad range of clients, including browsers and mobile devices. ASP.NET Web API is an ideal platform for building RESTful applications on the .NET Framework.
意思是,ASP.NET Web API 是一个框架,可以轻松构建 HTTP 服务,覆盖广泛的客户端,包括浏览器和移动设备。 ASP.NET Web API 是在. NET Framework 上构建 RESTful 应用程序的理想平台。
那么 RESTful 又是什么?
简单的解释,RESTful 属于一种设计风格,REST 中的 GET,POST,PUT DELETE 来进行数据的增删改查,如果开发人员的应用程序符合 RESTful 原则,则它的服务称为 "RESTful 风格应用服务"。
创建一个 ASP.NET Web API 应用程序
下面我们就创建一个 ASP.NET Web API 应用程序,来演示一下 ASP.NET Web API 的基本用法。
这里我们为了方便快捷,我们直接在 Visual Studio 建立 ASP.NET Web Application 向导的下一个窗口中选择 Web API。
当然如果你创建的是一个空的 ASP.NET Web Application,那么就需要安装引用 Microsoft ASP.NET Web API。
点击 OK 按钮,Visual Studio 就为我们创建了使用 Web API 所需的基本文件以及应用程序所需的基本结构,在 "Controllers" 文件夹中有个名为 ValuesController 的 Controller, 这个 Controller 就是自动创建的一个默认 Web API Controller。
我们打开 ValuesController 可以看到里面包含了基本的 GET,POST,PUT 和 DELETE 的 HTTP 请求方法。
- 1 public class ValuesController: ApiController 2 {
- 3 // GET api/values
- 4 public IEnumerable < string > Get() 5 {
- 6
- return new string[] {
- "value1",
- "value2"
- };
- 7
- }
- 8 9 // GET api/values/5
- 10 public string Get(int id) 11 {
- 12
- return "value";
- 13
- }
- 14 15 // POST api/values
- 16 public void Post([FromBody] string value) 17 {
- 18
- }
- 19 20 // PUT api/values/5
- 21 public void Put(int id, [FromBody] string value) 22 {
- 23
- }
- 24 25 // DELETE api/values/5
- 26 public void Delete(int id) 27 {
- 28
- }
- 29
- }
我们注意到上面代码中 Post 和 Put 方法参数中有一个关键字 [FromBody],而 Get 和 Delete 方法则没有。事实上没有加[FromBdoy] 就默认为 [FromUri]。它们代表什么意思呢,[FromBody] 表示由请求文件本体中取得数据,就像一般表单 Post Sumbit 一样。而 [FromUri] 则表示由 URI 中取得数据,就像网址中所带的参数一样。另外我们看到上面代码中绿色注释的部分就是不同请求的访问 URI。
这里我们稍作修改,添加一些模拟数据以便更好的演示这四种不同方式的请求。
- 1 public class ValuesController : ApiController
- 2 {
- 3 // Set mock data
- 4 List<string> mockDataList = new List<string>()
- 5 {
- 6 "Product A","Product B","Product C","Product D","Product E"
- 7 };
- 8
- 9 // GET api/values
- 10 public IEnumerable<string> Get()
- 11 {
- 12 return mockDataList;
- 13 }
- 14
- 15 // GET api/values/5
- 16 public string Get(int id)
- 17 {
- 18 return mockDataList[id];
- 19 }
- 20
- 21 // POST api/values
- 22 public void Post([FromBody]string value)
- 23 {
- 24 mockDataList.Add(value);
- 25 }
- 26
- 27 // PUT api/values/5
- 28 public void Put(int id, [FromBody]string value)
- 29 {
- 30 mockDataList[id] = value;
- 31 }
- 32
- 33 // DELETE api/values/5
- 34 public void Delete(int id)
- 35 {
- 36 mockDataList.RemoveAt(id);
- 37 }
- 38 }
好了,运行程序,这里我们借助 Fiddler,一个 web 调试代理工具。
1.Get 方法获取所有数据
选择请求方式 GET, 输入请求地址后点击 Execute 按钮
如图所示,请求成功并返回了所有数据。
2.Get 方法获取单个数据
选择请求方式 GET, 输入请求地址后点击 Execute 按钮
我们看到成功获取到了索引值为 1 的数据。
3.Post 方法添加一条数据
由于是 Post 请求,所以我们需要在请求 Header 中加上 Accept:application/xml 和 Content-Type:application/json 声明,并在请求的 Body 中加上你要添加的数值,这里我们添加一条数据 "Product F"。
点击 Execute 按钮执行后,接着按照 Get 获取所有数据的方式执行。看看是否成功新增数据。
我们看到新增的数据 "Product F" 在所有数据列表中了。
4.Put 修改一条数据
Put 请求,同样我们需要在请求 Header 中加上 Accept:application/xml 和 Content-Type:application/json 声明,并在请求的 Body 中加上你要修改的数值,这里我们修改列表下标索引值为 0 的数据为 "Product AA"。
点击 Execute 按钮执行后,接着按照 Get 获取所有数据的方式执行。看看是否成功修改数据。
我们看到所要修改的数据成功修改为 "Product AA"。
5.Delete 删除一条数据
这里我们删除下标索引值为 0 的数据。
点击 Execute 按钮执行后,接着按照 Get 获取所有数据的方式执行。看看是否成功删除数据。
我们看到成功删除了下标索引值为 0 的数据。
好了,本篇就先到此,希望对你有所帮助,谢谢!
来源: http://www.cnblogs.com/mejoy/p/6402821.html