2控制器操作返回值 类型 说明 void 操作返回值为void时,Web API返回空HTTP响应,其状态码为204(无内容) HttpResponseMessage Web api会将此返回值直接转换为...第一种调用HttpResponseMessage的构造函数,实例化一个HttpResponseMessage,并返回。Web API会将其直接转换为HTTP消息。...Web API会调用序列化器将其序列化后写入HTTP响应。...当控制器操作返回此类型时,Web API会调用ExecuteAsync方法创建类型为HttpResponseMessage的实例,然后将这个实例转换为HTTP消息。...2.3返回值为内置类型或自定义类型 返回值为内置类型或自定义类型时,Web API使用格式化器序列化返回值,并将其写入HTTP消息中,响应的状态码为200。
虽然通过Visual Studio向导在ASP.NET Web API项目中创建的 Controller类型默认派生与抽象类型ApiController,但是ASP.NET Web API框架本身只要求它实现...[本文已经同步到《How ASP.NET Web API Works?》]...HttpController可以视为对ASP.NET Web API的消息处理管道的延续。...通过“ASP.NET Web API标准的“管道式”设计”的介绍我们知道位于管道末端的是一个HttpRoutingDispatcher对象。...调用另一个方法GetFilters可以获取应用到目标HttpController类型上的所有Filter,Filter在ASP.NET Web API中是一个非常重要的概念,同时也是一种常见的扩展方式,
这是微软一贯的作风,如果从开发的便捷性来说的话微软是当之无愧的老大哥,只是鱼和熊掌不能兼得,各种语法糖带来开发的便利势必会牺牲程序运行的性能,这是无可避免的,通用和效率永远是需要程序员去取舍的话题。...扯淡到这就完了,下来就聊聊今天的主角web api,web api 是mvc4.0之后出现的一种技术吧,他的创建和带来的便利我就不介绍了。这边文章主要聊聊,我对web api开发的一些理解。...post请求中参数为name的值。...,这个时候需要使用JObject来处理,代码如下: jQuery.post("/Api/Userinfo/Add/", { mobile: "18049579804", pwd: "123456...WebApiConfig.cs配置为:控制/动作/参数 config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api
SOAP 允许我们将我们的服务所需的所有知识放在信息本身中",而"您可以使用 [Web API] 来创建只使用标准HTTP 概念 (URI 和动词)的HTTP服务,和创建使用更高级的 HTTP功能的服务...Old JSON) 服务,你能使用ASP.NET Web API做到这两点。...它是ASP.NET 开源的Web栈的所有部分。 ASP.NET Web API Samples on Codeplex,看到C# 协议对象如何在 JSON 世界和 C# 世界之间轻易来回移动了吗?...JSON.NET 和 ASP.NET Web API 的模型绑定提供了一个开心的介质——一个中间背景——被称为 JToken。...以上内容来自:微小的开心功能第2部分-Visual Studio 2012 中的ASP.NET Web API MVC4 WebAPI(一) MVC4 WebAPI(二)——Web API工作方式 http
通过IoC的方式实现针对目标HttpController的激活具有重要的意义。[本文已经同步到《How ASP.NET Web API Works?》]...通过《ASP.NET Web API的Controller是如何被创建的?》...我们在一个ASP.NET Web API应用中定义了这个UnityHttpControllerActivator类型。...Web API应用运行之后,我们可以直接在浏览器中输入相应的地址获取所有联系人列表(“/api/contacts”)和针对某个ID为“001”(“/api/contacts/001”)的联系人信息,相应的联系人信息会以如下图所示的形式出现在浏览器上...运行此ASP.NET Web API应用后通过浏览器试图获取联系人信息,我们依然会得到如上图所示的结果。
在ASP.NET CORE MVC中,Web API是其中一个功能子集,可以直接使用MVC的特性及路由等功能。...在成功构建 ASP.NET CORE MVC项目之后,选中解决方案,先填加一个API的文件夹,填加后,选中API文件夹, ?...选择新建项,选择填加Web API控制器,要注意控制器在命名时,是以Controller结尾的,这个不能改,前面的随意,比如,此处以NoteController.cs为例 ?.../note 即可获取note的信息了 当然 也可以访问地址http://127.0.0.1:port/api/note?...pageindex=2 表示获取第二页的信息。 讲得不详细的地方,欢迎在博客下方留言或者访问我的个人网站52dotnet.top与我联系。
类型的对象(ASP.NET WebAPI中Action的返回值最终都会被转换为HttpResponseMessage类型的对象),该对象包含一个HttpError类型实例。...过滤器可分为三个级别: Action Controller Global 注意:ASP.NET MVC和ASP.NET WebAPI的异常过滤器不可混用 ExceptionHandler 以下情形中的异常...相关阅读 catch all unhandled exceptions in ASP.NET Web Api Handling Errors in Web API Using Exception Filters...and Exception Handlers Exception Handling in ASP.NET Web API Global Error Handling in ASP.NET Web API...2 Action Results in Web API 2 版权声明 本文为作者原创,版权归作者雪飞鸿所有。
Routing Tables路由表 在Asp.Net Web API中,一个控制器就是一个处理HTTP请求的类,控制器的public方法就被叫做action方法或简单的Action。...当Web API接收到一个请求的时候,它将这个请求路由到一个Action。 注意:Web API的路由与Asp.Net MVC的路由是非常相似的。...1.为了找到Controller,Web API会把“控制器”加到{Controller}变量的值 2.为了找到Action,Web API会查找HTTP方法,然后寻找一个名称以HTTP... 在默认的路由模板中,这个Web API使用HTTP方法去选择Action。...{Controller}提供控制器名 {Action} 提供动作名。在Web API中,通常的约定是忽略{Action}的。
什么是Web API HTTP不仅仅服务于Web Pages。他也是一个创建展示服务和数据的API的强大平台。HTTP是简单的,灵活的,无处不在的。... Web API主要用于做开放API接口,更抽象,更不注重VIew生成 2.自身实现区别 两种框架主要使在Asp.Net的基础上进行改造,主要是对...MVC像是在一层上建立了第二层,引伸出更大的路由机制,实现了诸如MvcHandler和ControllerFactory这种消息处理和后台控制器方法选择机制。...而Web API除了扩展前者外,另外写出了一套独立的,独立于Asp.Net的消息处理管道,就像借鉴了原来的房子模型,重新设计出了另一套别墅,这也很好的解释了为什么Web API可以寄宿在不同的宿主上(宿主本质就是利用一个具体的一个用程序为...Web API提供给一个可运行的环境,并解决请求的接收和响应的回复),如 Web Host,Self Host方式,这与WCF相似。
现在我们来了解一下如何在使用 ASP.NET Web API 的生产环境中实际实施这些原理,并使用此框架提供的所有可扩展性和功能。 在内核级别,ASP.NET Web API 支持格式化程序的概念。...利用具有新的模型绑定程序或值提供程序的模型绑定基础结构通常可以解决此问题。幸运的是,这种不一致性在 ASP.NET Web API 中已通过引入格式化程序得到解决。...此步骤几乎可以用与在 ASP.NET 或 ASP.NET Web API 自托管中相同的方式来实现,只是所需的 HttpConfiguration 实现不同。...Web API 管道中配置格式化程序后,任何控制器使用 HAL 都可以简单地返回一个模型类,该模型类从格式化程序要序列化的 LinkedResource 派生。...格式化程序使您可以轻松使用新媒体类型扩展 Web API。 在 Web API 控制器中提供更好的链接支持 以前的 ProductCatalogController 示例肯定有不妥之处。
前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 路由就是Web API如何把...Web API支持一种新的路由类型,被叫做属性路由。顾名思义,属性路由是用属性来创建路由。在你的Web API中属性路由可以让你更好的控制URI。你能容易的创建描述资源阶层的URIs。 ...API版本控制 在下面的例子中,"api/v1/products"相对于"api/v2/products"将被路由到不同的控制器。...4、路由前缀 通常情况下,在同一个控制器中的所有路由以相同的前缀开头。...在大多数情况下,除非在你的管道中有自定义的模型绑定,这两种表现是等价的。 7、路由名称 在Web API中,每个路由都有一个名称。路由名称被用于生成链接,你能在HTTP响应中包含一个链接。
创建一个Web API项目 第一步,创建以下项目 ? 当然,你也可以创建一个Web API项目,利用 Web API模板,Web API模板使用 ASP.Net MVC提供API的帮助页。...Web API中,控制器就是一个处理HTTP请求的对象。...中包含查询字符串,这个Web API试图在控制器方法的参数中来匹配查询字符串。...默认情况下,ASP.NET Web API框架从路由获取简单的参数类型,从请求正文获取复杂的类型。 第五个方法:删除产品,在控制器添加代码如下。...上述测试我们发现我们的路由只是“api/{controler}”就成功返回了GetProducts方法中的数据,这也是ASP.NET Web API与ASP.NET MVC 之间的区别。
前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 本文描述ASP.NET Web...API中的JSON和XML格式化器。...在ASP.NET Web API中,媒体类型格式化器(Media-type Formatter)是一种能够做以下工作的对象: 从HTTP消息体读取CLR(公共语言运行时)对象 将CLR对象写入HTTP消息体...Web API提供了用于JSON和XML的媒体类型格式化器。...这么做的主要原因是: 将你的Web API响应限制到特定的媒体类型。例如,你可能决定只支持JSON响应,而删除XML格式化器。 用一个自定义格式化器代替默认的格式化器。
ASP.NET Web API 是一种框架,用于轻松构建可以访问多种客户端(包括浏览器和移动设备)的 HTTP 服务。...ASP.NET Web API 是一种用于在 .NET Framework 上构建 RESTful 应用程序的理想平台。 这是 MSDN 给出的官方定义!...在 VS 中创建一个 空项目,并为其添加 Web API。 添加模型 模型是表示应用程序中的数据的对象。...ASP.NET Web API 可以自动序列化到 JSON、 XML 或某种其他格式,然后写入 HTTP 响应消息的正文序列化的数据。 只要客户端可以读取的序列化格式,它可以反序列化对象。...从上下文菜单中,选择添加然后选择类。 ? 添加控制器 ? 添加 model 的应用,添加部分测试数据。 ? 使用 POSTMAN 测试 ?
路由调试 RouteDebugger 是调试 ASP.NET MVC 路由的一个好的工具,在ASP.NET WEB API中相应的有 WebApiRouteDebugger ,Nuget安装 Install-Package...(在上下文“Default”中的“C:\Windows \Microsoft.Net\assembly\GAC_MSIL\System.Web.WebPages.Razor \v4.0_2.0.0.0_...(在上下文“Default”中的“C:\Windows \Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\821cf8a9...是由于现在的WebPages 与GAC中的版本冲突(MS已经把webpages 剥离了.NET Framework ),只需要在webconfig中指定使用的版本即可 web-api-with-route-debugger.aspx http://www.asp.net/web-api
Web API 的开发类似于 ASP.NET MVC 中控制器的开发,但是相对于直接使用 ASP.NET MVC 来返回 Json 对象的方式而言,Web API 封装了数据的序列化、反序列化,接口、实现都更加简单...在不做任何配置的情况下,如果 Http 请求中,HttpHeader 中 Accept 被指定为 accept: application/xml,则 Web API 会自动把数据使用 xml 进行序列化...跟 ASP.NET MVC 的 Json 序列化不同的是,Web API 使用了 Newtonsoft.Json 框架来进行序列化。...username=hqf@qq.com&password=dsd 关于 POST 参数绑定 Web API 相对于 ASP.NET MVC,使用了新的参数绑定类。...如果参数列表中只有一个参数,而且它的类型是一个复杂类型,那么 Web API 会直接把 Body 尝试反序列化为该类的对象。
HttpResponseException-----HTTP响应异常 如果Web API控制器抛出一个未捕捉的异常,会发生什么呢?...注意:ASP.NET Web API中的异常过滤器与ASP.NET MVC中是及其相似的。然后,它们被声明在不用的命名空间下,且功能也是独立的。...特别强调以下,ASP.NET MVC中使用的HandlerErrorFilterAttribute不会处理Web API控制器抛出的异常。 ...{ } 要全局性的把过滤器运用于所有的Web API控制器将该过滤器的一个实例添加GlobalConfiguration.Configuration.Filter集合。...这个集合中的所有异常过滤器会应用于任何Web API控制器Action public class WebApiApplication : System.Web.HttpApplication {
Asp.Net Web API不可以需要IIS。可以自己在主机上承载一个Web API 创建WebAPI.Server项目 创建一个控制器项目的服务端 ? ...,这个控制器继承于Sytem.Web.Http.ApiController。...API 在Program类中添加如下引用 using System.Http; using System.Web.Http.SelfHost; 然后再添加如下代码 using System; using...//创建System.Web.Http的实现类 using (HttpSelfHostServer server = new HttpSelfHostServer...在Nuget中添加Microsoft.AspNet.WebApi.Client 添加Model 在客户端中添加一个与服务端具有相同属性的Product的实体模型 namespace WebAPI.Client.Models
1 概要 创建ASP.NET Web Api 时模板自带Help Pages框架。...2 问题 1)使用VS创建Web Api项目时,模板将Help Pages框架自动集成到其中,使得Web Api项目引入了MVC框架开发包,使得项目看起来杂乱。...2)自带的Help Pages框架无法针对Odata控制器生成API文档。...; //去掉Odata中控制器的版本号 var controllerSelector = configuration.Services.GetService...中的URI 例如在控制器中 public ActionResult Index() { ViewBag.DocumentationProvider =
在 ASP.NET Core Web API 中,由于 C# 是一种静态语言(dynamic 在此不表),当我们定义了一个类型用于接收 HTTP Patch 请求参数的时候,在 Action 中无法直接从实例中得知客户端提供了哪些参数...("Name")) { // 更新 Name(这里忽略合法性判断) entity.Name = input.Name!...二、将 Keys 保存在 Input Model 中 定义一个名为 PatchInput 的类: public abstract class PatchInput { [BindNever]...bindingContext); if (bindingContext.Model is PatchInput model) { // 将 Form 中的...Core Web API 中处理 JSON Patch 请求 https://learn.microsoft.com/zh-cn/aspnet/core/web-api/jsonpatch?