1、 时,框架将自动为它提供 OData 查询支持 使其易于分页和排序。(4)模型绑定和验证:模型绑定器提供了一种简单的方法来从HTTP 请求中的不同部分提取数据,并将这些信息部分转换为Web API行为可使用的.NET对象。Web API 支持相同的模型绑定和ASP. NET MVC 现今支持的验证基础结构。(5)路由: Web ApI 支持完整的路由功能集。现今ASP. NET MVC 和 ASP.NET也支持这一点,包括路线参数和约束。默认情况下,Web API 还提供了智能公约,使你能够轻松地创建实现 Web ApI的类,而无需不得不将属性应用到你的类或方法中。Web API 的配置纯粹是
2、通过代码来实现的 保持你的配置文件干净。(6)筛选器: Web ApI 使你能够轻松地使用和创建筛选器 (例如: 授权),那样你能够封装和应用交叉行为。(7)改进的可测试性:与其在静态文本对象中设置 HTTP 的详细信息,不如将 Web API 行为与 HttpRequestMessage 和 HttpResponseMessage 一起使用 两个新 的HTTP对象 (在其他内) 使测试更容易。例如,你可以单元测试你的 Web ApI,而无需不得不使用 Mocking 框架。(8)IoC支持: Web API 支持由 ASP. NET MVC 实现的服务定位器模式,使你能够解决不同设备的依赖。
3、你可以轻松地使用IoC容器或依赖注射架构来集成,以保持干净的依赖解决方案。(9)灵活的托管: Web ApI可以托管在任何类型的 ASP.NET应用程序内 (包括这两个基于应用程序的ASP. NET MVC和ASP.NET Web Forms)。我们还设计了 Web API 支持,这样,你还可以选择在你自己的进程内托管/公开它们,如果你不想使用 ASP.NET/IIS 来这样做。至于你如何以及在哪儿使用它,这给了你最大的灵活性。 3. 创建一个Web API程序启动VS2012创建一个新项目,在已经安装的模板中选择 ASP.NET MVC4 Web API程序在ASP.NET MVC项目对话框
4、中选择Web API项,点击确定创建成功之后工程中会自动添加一个Web API服务控制器,上面并附带访问地址项目解决方案,选择Models文件夹右键 添加一个Model类代码如下:namespaceGit.Framework.WebAPI.ModelspublicclassContactintIDget;set;stringNameSexDateTimeBirthdayAge 工程解决方案选择Controllers文件夹右键添加一个新的Web API controller在添加控制器弹出对话框中选择模板: 空API控制器控制器中添加如下代码:Git.Framework.WebAPI.Contr
5、ollersContactController:ApiControllerContactcontacts=newContact()ID=1,Age=23,Birthday=Convert.ToDateTime(1977-05-30),Name=情缘,Sex=男,ID=2,Age=55,1937-05-30令狐冲ID=3,Age=12,1987-05-30郭靖ID=4,Age=18,1997-05-30黄蓉女;/api/Contact/summaryreturns/returnsIEnumerableGetListAll()returncontacts;/api/Contact/idparamn
6、ame=id/paramContactGetContactByID(intid)contactcontacts.FirstOrDefaultitem.ID=id);if(contact=null)throwHttpResponseException(HttpStatusCode.NotFound);contact;根据性别查询/api/Contact?sex=女sexGetListBySex(stringsex)contacts.Where(item=item.Sexsex); 4. 浏览器访问API路径Controller MethedURIGetListAllGetListBySexsex
7、= + sexGetContactByID/api/Contact/+id在IE浏览器中浏览出现如下效果如果在Chrome 或者 FireFox 中浏览会先下如下效果 5. Javascript访问Web API在项目中添加一个About View视图Layoutnull;!DOCTYPEhtmlheadmetaviewportcontent=width=device-width/titleAboutscripttype=text/javascriptsrc=/Scripts/jquery-1.7.1.min.js/scripttext/ecmascript$(document).ready(
8、function()$(#btnAll).click(function$.getJSON(/api/Contactfunction(data)varhtmlul;$(data).each(function(i,item)+=li+item.ID+item.Name+item.Sex+/li);/ul#contactAll).html(html);#btnIDid#txtID).val();+id,+item.IDitem.Name#contactID#btnSexsex#ddlSexsex,#contactSex/headbodypinputbuttonid=btnAllvalue=查询所有&
9、nbsp;/ptexttxtIDbtnID根据ID查询selectddlSexoption男女btnSex根据性别查询divcontactAll/divcontactIDcontactSex/body/html运行结果效果图6. Web API总结 1.Web API 控制器(Controller) 继承ApiController 2. Api 的 Url Map: api/controller/id 每个Action是通过 Http谓词(GET/POST/PUT/DELETE)映射的3.客户端可以通过 Http Header 的 Accept 指定返回数据的格式。默认是支持:appliction/xml 和 application/json,当想返回比如 image/jpeg 这样的图片格式时,需要添加 MediaTypeFormatter。比如:当指定某个 Task 时,通过指定 Accept : image/jpeg 获取该 Task 的图片信息。(后面详细介绍)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1