我们要关注的是 API 能否正确将 HTTP 作为应用程序协议并尽可能利用超媒体。通过启用超媒体,您可以创建可自我发现的 API。这没有为不提供文档找借口,但是 API 在可更新性方面更灵活了。...现在我们来了解一下如何在使用 ASP.NET Web API 的生产环境中实际实施这些原理,并使用此框架提供的所有可扩展性和功能。 在内核级别,ASP.NET Web API 支持格式化程序的概念。...幸运的是,这种不一致性在 ASP.NET Web API 中已通过引入格式化程序得到解决。...API 宿主的一部分配置。...此步骤几乎可以用与在 ASP.NET 或 ASP.NET Web API 自托管中相同的方式来实现,只是所需的 HttpConfiguration 实现不同。
V1表示版本,可以使用这种方式进行版本控制,也可以使用其他方式。...config.Count().Filter().OrderBy().Expand().Select().MaxTop(null);这样配置使Odata操作符可用(Web Api2的旧版本不必如此设置)。...使用ODataConventionModelBuilder.Namespace定义命名空间,他是请求URI的一部分。...true)] ,[ODataFormatting],[ODataRouting]这三个特性,由于[ApiExplorerSettings(IgnoreApi = true)] 的影响,在System.Web.Http.Description.ApiDescription...使用EntityCollectionConfiguration.Action定义的控制器方法可以通过body体传参; 使用EntityCollectionConfiguration
在本文中,我将介绍一些可以为ASP.NET Web API生成文档的方法。在开发Web API的过程中你会发现,默认模板已经包含了为可实现的API 生成文档的功能。...入门 有关如何使用Swagger生成ASP.NET的Web API文档的文章已经有很多了(通过一个叫做Swashbuckle的NuGet包,你可以轻松地对此进行集成),但我需要不那么“动态”的东西——因为实际上我需要...幸运的是,有一个工具集很好地支持了Swagger,叫做Swagger Codegen,它可以生成客户端代码来使用API,即生成静态HTML的能力。...所需进行的准备 首先你要有一个可以在IIS或IIS Express中启动的Web API站点。...理想情况下,你要做的是将前面提到的Swashbuckle NuGet包集成到你现有的(或新建立的)Web API项目中。
使用Swagger记录ASP.NET Web API 原文作者:Rob Sanders 原文地址:https://dzone.com/articles/documenting-a-aspnet-web-api-with-swagger...在本文中,我将介绍一些可以为ASP.NET Web API生成文档的方法。...除非您从未生成过Web API网站,否则您将会意识到,默认模板已经包含了为您可能实现的API 生成文档的功能,其中的一个示例位于authme.ws。...入门 没有什么比一对夫妇的文章更多的已写入有关如何生成使用扬鞭用于ASP.NET的Web API文档(这里面的NuGet包称为Swashbuckle,你可以轻松地集成),但我需要的东西少动-其实,我需要生成表示我们提升到生产...你需要什么 您需要能够生成可以在IIS或IIS Express中启动的Web API站点。
IApiExplorer是一个新的抽象层,它可以帮助获取ASP.NET Web API的结构描述。伴随该接口的还有一个默认实现——APIExplorer。...使用该API可以完成的工作有: 产生文档 创建机器可读的元数据 创建一个测试客户端 微软员工Yao发表了两篇文章(这里和这里)分别用于展示如何使用API打印Web API列表以及如何创建帮助文档。...不过你可以使用我们在Codeplex上的安装包试试看。Henrik写了一篇关于如何使用这些包的很不错的文章。...ASP.NET Web API是ASP.NET MVC 4(目前处于Beta阶段) 中的一款新框架,它可以让使用.NET Framework构建RESTful Web服务的过程变得简单。...查看英文原文:Use IAPIExplorer To List Your ASP.NET Web APIs 查看中文原文:使用IAPIExplorer列举ASP.NET Web API
我们为不同的目的开发了很多web服务,经过授权的用户就可以访问和使用这些web服务。soapUI 是一个强大的测试web服务的工具,他不仅可以测试SOAP服务,他也支持测试RESTful服务。...在这里我将解释如何使用 SOAP UI 测试ASP.NET Web API。...下面我们用Getting Started with ASP.NET Web API 2 的服务进行测试....使用 soapUI 测试 REST 服务 Test Your ASP.NET WebService using SoapUI Teaching ASP.NET Web API to WADL Teaching...ASP.NET Web API to WADL–via NuGet
扯淡到这就完了,下来就聊聊今天的主角web api,web api 是mvc4.0之后出现的一种技术吧,他的创建和带来的便利我就不介绍了。这边文章主要聊聊,我对web api开发的一些理解。...要注意的是:[FromBody]只能修饰单个参数,如果是多个参数的话,就要封装成对象进行数据专递了,比如:public void Post([FromBody]string name,[FromBody...]int id)是取不到值的,要把id和name封装成Userinfo对象,使用 public void Post([FromBody]Userinfo user)进行调用。...话题二:post传递多个不同对象的参数 已经post请求需要使用[FromBody]特性修饰符接收,但是FromBody只能接收单个参数,如果需要传递不同对象的输出就比较麻烦了,新建实体对象成本太大,也不能完全适应适应的类型...,这个时候需要使用JObject来处理,代码如下: jQuery.post("/Api/Userinfo/Add/", { mobile: "18049579804", pwd: "123456
当Web API接收到一个请求的时候,它将这个请求路由到一个Action。 注意:Web API的路由与Asp.Net MVC的路由是非常相似的。...category=category 然而,以下URI就不匹配,因为它缺少“api”字段 /product/1 注意:在路由中使用“api”的原因是为了避免与ASP.NET MVC...这种风格的路由类似于Asp.Net MVC,而且可能与RPC式的API接近。 你也可以通过使用ActionName注解属性来覆盖动作名。...这个框架试图把URI路径中的片段与这个模板进行匹配。模板中文字必须严格匹配。一个占位符可以匹配任何值,除非你指定了约束。这个框架不会URI另外的部分,例如主机名或者一个查询字符串。...Extended Points Web API为路由过程的某些部分提供了扩展点。 ?
什么是Web API HTTP不仅仅服务于Web Pages。他也是一个创建展示服务和数据的API的强大平台。HTTP是简单的,灵活的,无处不在的。...Web API 与MVC 的区别 1.使用区别 MVC主要用于Web站点开发,它在后端实现了一套完整的MVC开发框架,能提供方便的页面开发,提供给了后端Html构成,用户可以方便的开发出带页面的站点... Web API主要用于做开放API接口,更抽象,更不注重VIew生成 2.自身实现区别 两种框架主要使在Asp.Net的基础上进行改造,主要是对...而Web API除了扩展前者外,另外写出了一套独立的,独立于Asp.Net的消息处理管道,就像借鉴了原来的房子模型,重新设计出了另一套别墅,这也很好的解释了为什么Web API可以寄宿在不同的宿主上(宿主本质就是利用一个具体的一个用程序为...Web API提供给一个可运行的环境,并解决请求的接收和响应的回复),如 Web Host,Self Host方式,这与WCF相似。
创建一个Web API项目 第一步,创建以下项目 ? 当然,你也可以创建一个Web API项目,利用 Web API模板,Web API模板使用 ASP.Net MVC提供API的帮助页。...注意,如果你使用了ASP.NET MVC 已熟悉控制器,Web API控制器类似于MVC控制器,但是继承ApiController,而不是Controller类 ?...ASP.NET Web API使它容易操作HTTP响应消息。...在这种情况下,DeleteProduct方法具有void返回类型,因此ASP.NET Web API自动转换此状态代码204(无内容) 运行测试 方法创建完毕后我们就可以运行服务端进行测试了 ? ...Web API路由可以没有{Action},只通过HTTP请求方式来匹配路由,并且路由默认以api启示,如果想要设置,在App_Start中WebApiConfig类中进行设置路由。 ?
使用 OWIN 作为 ASP.NET Web API 的宿主 ASP.NET Web API 是一种框架,用于轻松构建可以访问多种客户端(包括浏览器和移动 设备)的 HTTP 服务。...ASP.NET Web API 是一种用于在 .NET Framework 上构建 RESTful 应用程序的理想平台。...ASP.NET Web API 是 OWIN 兼容的, 因此可以在 OWIN 服务器上运行。...创建 OWIN 兼容的 Web API 类库 打开 Xamarin Studio, 新建一个 C# 类库项目, 如下图: ?...使用 Nowin 服务器运行 OWIN 兼容的应用可以在任何 OWIN 服务器上运行, 下面就看看如何在 Nowin 上运行。
Web API 的开发类似于 ASP.NET MVC 中控制器的开发,但是相对于直接使用 ASP.NET MVC 来返回 Json 对象的方式而言,Web API 封装了数据的序列化、反序列化,接口、实现都更加简单...一般情况下,我们会使用 Json 序列化。跟 ASP.NET MVC 的 Json 序列化不同的是,Web API 使用了 Newtonsoft.Json 框架来进行序列化。...在面向服务的架构中,往往不会直接把底层的实体公布出来,让客户端直接进行 CRU 操作;而是公布一些粗粒度的 RPC 形式的服务操作。要使用 Web API 框架,我们需要修改默认的配置。...username=hqf@qq.com&password=dsd 关于 POST 参数绑定 Web API 相对于 ASP.NET MVC,使用了新的参数绑定类。...解决这些问题后,我们的系统,已经开始使用 Web API 来进行开发了。
ASP.NET Web API 是一种框架,用于轻松构建可以访问多种客户端(包括浏览器和移动设备)的 HTTP 服务。...ASP.NET Web API 是一种用于在 .NET Framework 上构建 RESTful 应用程序的理想平台。 这是 MSDN 给出的官方定义!...实际开发中,我们可以轻松的使用 WebAPI 配合 Routing 路由和 EF 框架来轻松的实现一个 RESTful 的 API 并将其作为软件的后端。...ASP.NET Web API 可以自动序列化到 JSON、 XML 或某种其他格式,然后写入 HTTP 响应消息的正文序列化的数据。 只要客户端可以读取的序列化格式,它可以反序列化对象。...添加 model 的应用,添加部分测试数据。 ? 使用 POSTMAN 测试 ?
路由调试 RouteDebugger 是调试 ASP.NET MVC 路由的一个好的工具,在ASP.NET WEB API中相应的有 WebApiRouteDebugger ,Nuget安装 Install-Package...是由于现在的WebPages 与GAC中的版本冲突(MS已经把webpages 剥离了.NET Framework ),只需要在webconfig中指定使用的版本即可 <dependentAssembly...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
HttpResponseException-----HTTP响应异常 如果Web API控制器抛出一个未捕捉的异常,会发生什么呢?...编写异常过滤器最简单的方法是通过System.Web.Fitlers.ExceptionFilterAttribute类进行派生,并重写OnException方法。 ...注意:ASP.NET Web API中的异常过滤器与ASP.NET MVC中是及其相似的。然后,它们被声明在不用的命名空间下,且功能也是独立的。...特别强调以下,ASP.NET MVC中使用的HandlerErrorFilterAttribute不会处理Web API控制器抛出的异常。 ...使用HttpError的一个好处是,与其它强类型模型一样,会进行同样的“content-negotiation”(暂未实现)和序列过程 直接替代创建HttpError对象的一种方法是:你可以使用CreateErrorResponse
Asp.Net Web API不可以需要IIS。可以自己在主机上承载一个Web API 创建WebAPI.Server项目 创建一个控制器项目的服务端 ? ...API 在Program类中添加如下引用 using System.Http; using System.Web.Http.SelfHost; 然后再添加如下代码 using System; using...2.使用Netsh.exe给与你的账号权限去保留这个URL。...若要使用Netsh.exe,以管理员身份打开命令提示框,并键入以下命令: netsh http add urlacl url=http://+:7777/ user=machine\username 其中...当你使用完自托管的时候,最好是确定删除这个保留的URL。 netsh http delete urlacl url=http://+:7777/ 然后启动服务端 ?
在本文中,我将介绍一些可以为ASP.NET Web API生成文档的方法。...除非你从未生成过Web API网站,否则你将会意识到,默认模板已经包含了为你可能实现的API 生成文档的功能,其中的一个示例位于authme.ws。...入门 关于如何使用Swagger为ASP.NET Web API生成文档已经写了不止两篇文章(还有一个叫做Swashbuckle的NuGet包,你可以很容易地集成它),但是我需要一些动态的东西 - 事实上...你需要什么 你需要能够在IIS或IIS Express中可以启动的Web API站点。...理想情况下,你要做的是将前面提到的Swashbuckle NuGet包集成到你现有的(或新的)Web API项目中。
打开IIS,点击根目录,双击 右键,弹出菜单,点击完成证书申请,即红框部分 弹出页,选择生成好的证书(证书需要以 格式导出) 命名并点击确定 至此,不同的IIS会有不同的反应,有些服务器导入成功,有些服务器报错
1 概要 创建ASP.NET Web Api 时模板自带Help Pages框架。...2 问题 1)使用VS创建Web Api项目时,模板将Help Pages框架自动集成到其中,使得Web Api项目引入了MVC框架开发包,使得项目看起来杂乱。...()); // Web API 路由 config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute...string.IsNullOrEmpty(x)); } } 步骤4,使用MultiXmlDocumentationProvider 将config.SetDocumentationProvider...} } } } 步骤2;根据OData路由拼出api的URI 使用OdataRelativePath.GetOdataRelativePath方法修改ApiExplorer.ApiDescriptions
这篇文章主要是介绍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
领取专属 10元无门槛券
手把手带您无忧上云