Web API 的开发类似于 ASP.NET MVC 中控制器的开发,但是相对于直接使用 ASP.NET MVC 来返回 Json 对象的方式而言,Web API 封装了数据的序列化、反序列化,接口、实现都更加简单...跟 ASP.NET MVC 的 Json 序列化不同的是,Web API 使用了 Newtonsoft.Json 框架来进行序列化。...Action 匹配 Web API 框架默认是基于 Restful 架构模式的,与 ASP.NET MVC 有区别的是,它会根据 Http 请求的 HttpMethod(Get、Post、Put、Delete...username=hqf@qq.com&password=dsd 关于 POST 参数绑定 Web API 相对于 ASP.NET MVC,使用了新的参数绑定类。.../cibrax/archive/2012/08/10/binding-form-data-in-asp-net-web-api.aspx 不错的示例代码 MSDN 上有一个比较全面的示例代码:
ASP.NET Web API 支持 CORS 支持的代码参见 http://code.msdn.microsoft.com/Implementing-CORS-support-418970ee,也可以通过...Nuget 获取WebAPIContrib PM> Install-Package WebAPIContrib 然后给你的Web API的Action 打上标签[EnableCors],例如下面的代码.../blog/2010/05/25/cross-domain-ajax-with-cross-origin-resource-sharing/ Using CORS to access ASP.NET services...across domains Cross-Origin Resource Sharing (CORS) and WCF 在asp.net web api中动态修改action的名字 ASP.NET Web...API: CORS支持和基于属性的路由改进 Using Cross Origin Resource Sharing (CORS) in ASP.NET Web API
导航 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html。...本文主要来讲解以下内容: 前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html。...当Web API在一个控制器中调用一个方法的时候,它必须为参数设定值,这个过程就叫做绑定。这篇文章描述Web API如何绑定参数,以及如何自定义绑定过程。 ...默认情况,Web API使用如下规则来绑定参数: 1、如果参数一个"简单"类型,那么Web API试图从URI中获取值。...本文的参考链接为http://www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api
ASP.NET Web API 处理架构中介绍了ASP.NET Web API主要有三层组成:宿主(hosting),消息处理管道(message handler pipeline)和控制器处理(controller...ASP.NET经典管道上的Web Hosting 1、ASP.NET 路由使您可以使用不必映射到网站中特定文件的 URL。...由于该 URL 不必映射到文件,因此可以使用对用户操作进行描述因而更易于被用户理解的 URL,路由在ASP.NET Web API上一样有重要的位置。...2、集成Web API,当宿主与ASP.NET,Web API的配置定义在单件的HttpConfiguration对象里,通过静态属性GlobalConfiguration.Configuration访问...Web API还定义了几个RouteCollection 扩展方法,叫做 MapHttpRoute,用来定义Web APi的配置。
Routing Tables路由表 在Asp.Net Web API中,一个控制器就是一个处理HTTP请求的类,控制器的public方法就被叫做action方法或简单的Action。...当Web API接收到一个请求的时候,它将这个请求路由到一个Action。 注意:Web API的路由与Asp.Net MVC的路由是非常相似的。...category=category 然而,以下URI就不匹配,因为它缺少“api”字段 /product/1 注意:在路由中使用“api”的原因是为了避免与ASP.NET MVC...这种风格的路由类似于Asp.Net MVC,而且可能与RPC式的API接近。 你也可以通过使用ActionName注解属性来覆盖动作名。...Parameter Bindings 参数绑定是指Web API如何创建参数值。
版本控制 版本控制的方法有很多,这里提供一种将Odata与普通web api版本控制机制统一的方法,但也可以单独控制,整合控制与单独控制主要的不同是:整合控制通过VersionControllerSelector...public static void Register(HttpConfiguration config) { ...... // Web...API 路由 config.Routes.MapHttpRoute( name: "defaultRoute",...IHttpControllerSelector), new NormalVersionControllerSelector(config)); ...... } } 3 同时支持Odata,与普通Web...class WebApiConfig public static void Register(HttpConfiguration config) { // Web
什么是Web API HTTP不仅仅服务于Web Pages。他也是一个创建展示服务和数据的API的强大平台。HTTP是简单的,灵活的,无处不在的。... Web API主要用于做开放API接口,更抽象,更不注重VIew生成 2.自身实现区别 两种框架主要使在Asp.Net的基础上进行改造,主要是对...而Web API除了扩展前者外,另外写出了一套独立的,独立于Asp.Net的消息处理管道,就像借鉴了原来的房子模型,重新设计出了另一套别墅,这也很好的解释了为什么Web API可以寄宿在不同的宿主上(宿主本质就是利用一个具体的一个用程序为...Web API提供给一个可运行的环境,并解决请求的接收和响应的回复),如 Web Host,Self Host方式,这与WCF相似。...而MVC只能寄宿与IIS上(不考虑.net core),就像WebForm的寄宿方式。
ModelBinding的好处 使代码变得更加简洁 帮助我们获取HTTP请求中的数据 帮助我们完成必要的数据类型转换 ASP.NET MVC中ModelBinding的实现过程 ASP.NET MVC中...具体的实现过程可以看蒋金楠的《ASP.NET MVC5框架揭秘》或者看他的博客How ASP.NET MVC Works?,讲解很详细。 ?...经过上述一系列的处理获取最终结果 自定义ModelBinder 自定义Modelbinder只需实现System.Web.Mvc.IModelBinder接口即可。...使用ModelBinderProviders.BinderProviers 使用ModelBinders.Binders 参数类型上标记CustomModelBinderAttribute ASP.NET...参考文章: Model Binders in ASP.NET MVC ModelBinder——ASP.NET MVC Model绑定的核心 ASP.NET MVC以ValueProvider为核心的值提供系统
路由调试 RouteDebugger 是调试 ASP.NET MVC 路由的一个好的工具,在ASP.NET WEB API中相应的有 WebApiRouteDebugger ,Nuget安装 Install-Package...(在上下文“Default”中的“C:\Windows \Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\821cf8a9...Refer: http://www.asp.net/web-api/overview/creating-web-apis/creating-api-help-pages http://blogs.msdn.com.../b/webdev/archive/2013/04/04/debugging-asp-net-web-api-with-route-debugger.aspx http://www.asp.net/web-api.../overview/testing-and-debugging/tracing-in-aspnet-web-api
简介 ASP.NET Web API是一个可以简化创建HTTP服务的框架 它支持包括浏览器和移动设备在内的各种客户端 ASP.NET Web API是在.NET Framework上创建RESTful应用程序的理想平台...译者注:关于RESTful web服务可以参见这里:http://zh.wikipedia.org/wiki/REST 准备 ASP.NET MVC 4包括ASP.NET Web API,请在这里安装...:http://www.asp.net/web-api 使用Visual Studio 2010或者Visual Studio 2012都可以开发 关于ASP.NET Web API的特性请看这里:http....NET Framework上创建web API的类库 在这篇文章中, 你将看到如何使用ASP.NET Web API创建一个web api, 并且让这个api返回一个产品列表的数据 新建项目 如下图所示...MVC 你会发现ASP.NET WEB API的控制器 与ASP.NET MVC的控制器基本相同 最大的不同就是 ASP.NET WEB API的控制器继承自ApiController ASP.NET
HttpResponseException-----HTTP响应异常 如果Web API控制器抛出一个未捕捉的异常,会发生什么呢?...注意:ASP.NET Web API中的异常过滤器与ASP.NET MVC中是及其相似的。然后,它们被声明在不用的命名空间下,且功能也是独立的。...特别强调以下,ASP.NET MVC中使用的HandlerErrorFilterAttribute不会处理Web API控制器抛出的异常。 ...属性含有发送到客户端的HTTP响应消息 Registering Exception Filters --- 注册异常过滤器 以下是注册Web API异常过滤器的几种方式 1.通过Action...这个集合中的所有异常过滤器会应用于任何Web API控制器Action public class WebApiApplication : System.Web.HttpApplication {
ASP.NET Web API 是一种框架,用于轻松构建可以访问多种客户端(包括浏览器和移动设备)的 HTTP 服务。...ASP.NET Web API 是一种用于在 .NET Framework 上构建 RESTful 应用程序的理想平台。 这是 MSDN 给出的官方定义!...关于 RESTful Api 的更多信息, 可以参考 阮一峰老师的文章 理解RESTful架构 RESTful API 设计指南 创建WEB API ?...在 VS 中创建一个 空项目,并为其添加 Web API。 添加模型 模型是表示应用程序中的数据的对象。...ASP.NET Web API 可以自动序列化到 JSON、 XML 或某种其他格式,然后写入 HTTP 响应消息的正文序列化的数据。 只要客户端可以读取的序列化格式,它可以反序列化对象。
4 对第二种方法的错误点分析: 看Web api dll源码中的设置: ?
这篇文章主要是介绍ASP.NET Web API的处理架构:当一个HTTP请求到达直到产生一个请求的过程。...ASP.NET Web API 的处理架构图如下,主要有三层组成:宿主(hosting),消息处理管道(message handler pipeline)和控制器处理(controller handling...宿主(Hosting) 底层负责Web API的宿主,Web API之间的接口和HTTP 处理引擎。一句话,这一层负责创建HttpRequestMessage实例。然后把他们推入到上层的消息处理管道。...目前在ASP.NET Web API里头已经内建的宿主选项有2个:self-hosting 和 web hosting, web hosting也就是宿主在IIS的ASP.net 的处理管道里,Self-hosting...消息处理管道(Message Handler Pipeline) 中间层是 message handler pipeline,这一部分就是 WCF Web API 的内容了,通过 HttpServer
HttpResponseException包含两个重载的构造函数,其中一个是构造函数参数类型为HttpResponseMessage,通过其设置状态码,错误消息短语以及消息体内容来向客户端抛出比较详细的错误信息...另一个参数类型为HttpStatusCode,只能设定状态码。 2自定义异常过滤器 扩展IExceptionFilter来定义异常过滤器。...bool ShouldLog(ExceptionLoggerContext context) { if ((context.Exception is System.Web.HttpException...{ public static void Register(HttpConfiguration config) { // 加载log4net...配置文件 LogConfigLoading.Load(AppSettings.Log4netPathForWeb); // 加载Web API服务
Asp.Net Web API不可以需要IIS。可以自己在主机上承载一个Web API 创建WebAPI.Server项目 创建一个控制器项目的服务端 ? ...记得扩展引用System.Web.Http using System.Collections.Generic; using System.Linq; using System.Net; using System.Web.Http...API 在Program类中添加如下引用 using System.Http; using System.Web.Http.SelfHost; 然后再添加如下代码 using System; using...System.Web.Http; using System.Web.Http.SelfHost; namespace WebAPI.Server { class Program {...} } 创建HttpClient辅助类 using System; using System.Collections.Generic; using System.Linq; using System.Net.Http
创建一个Web API项目 第一步,创建以下项目 ? 当然,你也可以创建一个Web API项目,利用 Web API模板,Web API模板使用 ASP.Net MVC提供API的帮助页。...这个参数被映射到URI路径中的id字段。这个Asp.Net Web API框架自动把id参数转换为正确的int数据类型,如果id无效,就会抛出一个HttpResponseException异常。...ASP.NET Web API使它容易操作HTTP响应消息。...默认情况下,ASP.NET Web API框架从路由获取简单的参数类型,从请求正文获取复杂的类型。 第五个方法:删除产品,在控制器添加代码如下。...上述测试我们发现我们的路由只是“api/{controler}”就成功返回了GetProducts方法中的数据,这也是ASP.NET Web API与ASP.NET MVC 之间的区别。
config.Count().Filter().OrderBy().Expand().Select().MaxTop(null);这样配置使Odata操作符可用(Web Api2的旧版本不必如此设置)。...EDM模型配置 实体名称为Collection,控制器名称为CollectionsV1Controller,Action名称为AddCollection,collectionBM为方法参数名称...Function名称为GetCollection,Function返回数据类型为CollectionDTO,Function参数名为userId。...true)] ,[ODataFormatting],[ODataRouting]这三个特性,由于[ApiExplorerSettings(IgnoreApi = true)] 的影响,在System.Web.Http.Description.ApiDescription...写法值得注意,例如:http://localhost/HY_WebApi/Odata/V1/Collections/Service.GetCollection(userId=3),注意这里使用了括号将参数括起来
该书主要分为两部分,ASP.NET MVC 5、ASP.NET WEB API2。本书最大的特点是以面试问答的形式进行展开。通读此书,会帮助你对ASP.NET MVC有更深层次的理解。...什么是ASP.NET WEB API? Ans. ASP.NET WEB API 是一个框架用来搭建HTTP服务以供客户端(比如:浏览器,手机,IPhone等)调用。...ASP.NET WEB API 路由与 ASP.NET MVC 路由有什么区别? Ans. ASP.NET MVC 与 ASP.NET WEB API 使用路由来监控传入的请求。...主要的区别有以下几点: 在WEB API 路由模式中 {action}参数是可选的,但是你可以自行包含 一个 {action} 参数。在ASP.NET MVC中 {action} 参数是强制的。...不像ASP.NET MVC,Web API仅能接收一个复杂类型作为参数。 Q14. ASP.NET WEB API2中如何启用特性路由? Ans.
现在我们来了解一下如何在使用 ASP.NET Web API 的生产环境中实际实施这些原理,并使用此框架提供的所有可扩展性和功能。 在内核级别,ASP.NET Web API 支持格式化程序的概念。...幸运的是,这种不一致性在 ASP.NET Web API 中已通过引入格式化程序得到解决。...此步骤几乎可以用与在 ASP.NET 或 ASP.NET Web API 自托管中相同的方式来实现,只是所需的 HttpConfiguration 实现不同。...尽管自托管使用 HttpSelfHostConfiguration 实例,ASP.NET 通常使用在 System.Web.Http.GlobalConfiguration.Configuration...您在 RestBugs 中可以找到用于 Razor 的 MediaTypeFormatter 的具体实现,该示例应用程序由 Howard Dierking 创建,演示如何使用 ASP.NET Web API
领取专属 10元无门槛券
手把手带您无忧上云