码迷,mamicode.com
首页 > Windows程序 > 详细

WebAPI

时间:2015-04-30 23:09:15      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:

WebAPI 是完全基于RESTful标准的(HTTP协议), WCF和WebService(SOAP协议)

  那么什么是RESTful

  RESTful是面向资源,一个地址代表一个资源。

  http://www.demo.com/student 可以代表学生的资源

  http://www.demo.com/student/张三 可以代表一个叫张三学生的资源

技术分享

WebAPI就是实现RESTful这个思想的一个框架,建立一个HTTP服务可以被各种客户端(例如:浏览器,智能手机终端,桌面客户端等)来调用的框架。它并不是ASP.NET MVC框架的一部分,它作为ASP.NET平台的一部分可以用于MVC,Web Form或者是作为一个独立的服务存在。

下面我们来构建一个最简单的webAPI

首先新建一个空的web应用程序

技术分享

用神器NuGet下载webAPI程序包

技术分享

创建一个实体类作为数据源

 1 using System;
 2 using System.Collections;
 3 using System.Collections.Generic;
 4 using System.Linq;
 5 using System.Web;
 6 namespace WebAPI.Models
 7 {
 8     public class Students
 9     {
10         public int Id { get; set; }
11         public string Name { get; set; }
12         public int Age { get; set; }
13         public static IList<Students> StudentsStorage = new List<Students>
14         {
15             new Students {Id = 1, Name = "张三", Age = 20},
16             new Students {Id = 2, Name = "李四", Age = 21},
17             new Students {Id = 3, Name = "王五", Age = 22},
18         };
19     }
20 }

新建一个StudentsController类使得它继承ApiController

技术分享

 1 using System;
 2 using System.Collections;
 3 using System.Collections.Generic;
 4 using System.Linq;
 5 using System.Web;
 6 using System.Web.Http;
 7 using WebAPI.Models;
 8 namespace WebAPI.Cotntrollers
 9 {
10     public class StudentsController:ApiController
11     {
12         //Get:/Students
13         public IEnumerable<Students> Get()
14         {
15             return Students.StudentsStorage;
16         }
17         //Get:/Students/2
18         public Students Get(int item)
19         {
20             return Students.StudentsStorage.FirstOrDefault(s => s.Id.Equals(item));
21         }
22         //POST:/Students
23         public void Post(Students model)
24         {
25             Students.StudentsStorage.Add(model);
26         }
27         //Put:/Students
28         public void Put(int item, Students model)
29         {
30             var exitst = Students.StudentsStorage.FirstOrDefault(s => s.Id.Equals(item));
31             if (exitst != null)
32             {
33                 model.Id = exitst.Id;
34                 
35             }
36             Students.StudentsStorage.Remove(exitst);
37             Students.StudentsStorage.Add(model);
38         }
39         //DElETE:student/1
40         public void Delete(int item)
41         {
42             var exitst = Students.StudentsStorage.FirstOrDefault(s => s.Id.Equals(item));
43             Students.StudentsStorage.Remove(exitst);
44         }
45     }
46 }

新建一个Global.asax 配置WebAPI路由

1  protected void Application_Start(object sender, EventArgs e)
2         {
3             //WebAPI路由
4             GlobalConfiguration.Configuration.Routes.MapHttpRoute(
5                 "default_api", 
6                 "{controller}/{item}",
7                defaults: new { item = RouteParameter.Optional });
8         }

  那么好了一个最简单的WebAPI就好了 下面我们来测试一下这个WebAPI

技术分享

为什么的到的是XML我们来看一下

技术分享

 从这可以看到我们发送的Content-Type 是 appliction/xml

 那我们如果需要Json格式的数据 怎么办 其实就是把请求的Content-Type改成appliction/json 我们就可以拿到json格式的数据 

 还有通过这个工具我们可以测试我们刚刚写的WebAPI  GET POST PUT DELETE方法

技术分享

 

 

WebAPI

标签:

原文地址:http://www.cnblogs.com/mjxup/p/4470062.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!