12 Asp.Net WebAPI 执行与部署
1. Asp.Net WebAPI数据分页与查询
2. WebAPI何时返回JSON或XML?
为什么用Chrome和IE,访问同样的服务,Chrome默认返回的数据是XML格式,而IE默认的是JSON格式?
实际上 ASP.NET Web API 对数据对象的序列化是非常智能的,它能够根据请求希望的媒体类型选择适合的序列化方式。
完全看请求的Header中的Accept怎么写,如果包含了application/xml, WebAPI就返回XML格式的数据,如果不包含,或者添上application/json,就返回JSON格式的数据。
3. Action是怎样被找到的?
ASP.NET Web API针对当前请求选择Action的机制不仅仅依赖于 URL 路由,还与请求采用的 HTTP 方法(GET, POST等)有关。
为了找到Action,Web API会查找HTTP方法,然后寻找一个名称以HTTP方法名开头的方法。例如,对于一个Get请求,Web API会查找一个以“Get…”开头的动作,如GetContact() 等,参数完全一致的方法只能有一个。
4. Asp.Net WebAPI的部署方式
ASP.NET Web API 可以寄宿于一个 ASP.NET Web 应用中。
ASP.NET Web API也可以采用"自我寄宿"的方式承载于一个其他类型的应用程序。
Web API 的自我寄宿通过 HttpSelfHostServer 来实现,其本质就是利用 HttpBinding 创建一个请求监听器和一个接收并处理请求的信道。
5. Asp.Net Web API 很象Asp.Net MVC
Asp.Net Web API基于ASP.NET,又借用了很多ASP.NET MVC的概念,所以很容易被ASP.NET的开发者适应和熟悉。因为它ASP.net MVC太像了:URL路由,HTTP Method特性,模型绑定等等。只是WebAPI比MVC更加轻量级,更加restful。
Asp.Net Web API 主要的技术指标如下:
1. 支持URL路由,透过用户熟悉的MVC风格路由语义,生成干净的URL。
2. 根据Accept标头对请求和响应的序列化形式。
3. 支持大量输出格式,包括JSON、XML等。
4. 默认对REST语义有完善支持,同时又不强制限定必须使用REST语义。
5. 基于惯例的设计引导用户按HTTP Services的正确方式行事。
6. 用于非Web程序时,可以脱离IIS运行(Self-hostable)。
7. 具备可测试性,测试机制的设计类似于MVC。