ASP.NET Web API 是一种框架,用于轻松构建能够由多种客户端(包括浏览器和移动设备)访问的 HTTP 服务。ASP.NET Web API 是一种用于在 .NET Framework 上构建 RESTful 应用程序的理想平台。html
能够把WebApi当作Asp.Net项目类型中的一种,其余项目类型诸如咱们熟知的WebForm项目,Windows窗体项目,控制台应用程序等。web
WebApi类型项目的最大优点就是,开发者不再用担忧客户端和服务器之间传输的数据的序列化和反序列化问题,由于WebApi是强类型的,能够自动进行序列化和反序列化,一下子项目中会见到。api
Web API最重要的是能够构建面向各类客户端的服务。另外与WCF REST Service不一样在于,Web API利用Http协议的各个方面来表达服务(例如 URI/request response header/caching/versioning/content format),所以就省掉不少配置。浏览器
当你遇到如下这些状况的时候,就能够考虑使用Web API了。缓存
1. 支持基于Http verb (GET, POST, PUT, DELETE)的CRUD (create, retrieve, update, delete)操做服务器
经过不一样的http动做表达不一样的含义,这样就不须要暴露多个API来支持这些基本操做。框架
2. 请求的回复经过Http Status Code表达不一样含义,而且客户端能够经过Accept header来与服务器协商格式,例如你但愿服务器返回JSON格式仍是XML格式。函数
3. 请求的回复格式支持 JSON,XML,而且能够扩展添加其余格式。工具
4. 原生支持OData。post
5. 支持Self-host或者IIS host。
6. 支持大多数MVC功能,例如Routing/Controller/Action Result/Filter/Model Builder/IOC Container/Dependency Injection。
一、它是基于SOAP协议的,数据格式是XML。
二、只支持HTTP协议。
三、它不是开源的,但能够被任意一个了解XML的人使用。
四、它只能部署在IIS上。
一、这个也是基于SOAP的,数据格式是XML。
二、这个是Web Service(ASMX)的进化版,能够支持各类各样的协议,
像TCP,HTTP,HTTPS,Named Pipes, MSMQ.。
三、WCF的主要问题是,它配置起来特别的繁琐。
四、它不是开源的,但能够被任意一个了解XML的人使用。
五、它能够部署应用程序中或者IIS上或者Windows服务中。
一、想使用WCF Rest service,你必须在WCF中使用webHttpBindings。
二、它分别用[WebGet]和[WebInvoke]属性,实现了HTTP的GET和POST动词。
三、要想使用其余的HTTP动词,你须要在IIS中作一些配置,使.svc文件能够接受这些动词的请求。
四、使用WebGet经过参数传输数据,也须要配置。并且必须指定UriTemplate。
五、它支持XML、JSON以及ATOM这些数据格式。
一、这是一个简单的构建HTTP服务的新框架。
二、在.net平台上Web API 是一个开源的、理想的、构建REST-ful 服务的技术。
三、不像WCF REST Service.它可使用HTTP的所有特色(好比URIs、request/response头,缓存,版本控制,多种内容格式)。
四、它也支持MVC的特征,像路由、控制器、action、filter、模型绑定、控制反转(IOC)或依赖注入(DI),单元测试。这些可使程序更简单、更健壮。
五、它能够部署在应用程序和IIS上。
六、这是一个轻量级的框架,而且对限制带宽的设备,好比智能手机等支持的很好。
七、Response能够被Web API的MediaTypeFormatter转换成Json、XML 或者任何你想转换的格式。
1.新建一个Asp.net空应用程序
2.选择WebAPI
3.这里咱们新增一个名为PersonController的Web Api2控制器
3.在控制器中写3个简单的方法
1 public class PersonController : ApiController 2 { 3 //不带参数的方法 4 public string[] Get() 5 { 6 return new string[] { "shuke", "beta", "tom" }; 7 } 8 //根据学生ID查询学生姓名 9 public string Get(int id) 10 { 11 if (id == 1) 12 { 13 return "shuke"; 14 } 15 else 16 { 17 return "beta"; 18 } 19 } 20 //返回学生姓名的长度 21 public int Get(string name) 22 { 23 return name.Length; 24 } 25 }
4.到这里一个简单的Web API项目就建立完成了,点击运行
直接运行,不会直接跳转到到咱们写的api里面,这里咱们要将地址后面加上文件地址加上这里指定的后缀(也能够改成别的),这里个人是api/Person/
在浏览器地址加入后缀,当id=1是,能够看到这里结果为shuke,那么到这里就成功查询出来了。
5.调试工具推荐:到这里基本一个webapi项目就完成了,剩下了就是显示了。首先得先运行项目,而后再浏览器地址栏找到网址,而后复制到postman中,而后再调用相关的函数。咱们在作大型项目是在浏览器调试会有诸多不便,这里推荐一个经常使用的接口调试工具Postman。
PostMan地址 :https://www.getpostman.com/