我们认为,您也可以在这些情形中使用超媒体项目。 使用这个新方法后,服务器不仅仅返回数据。它返回数据和超媒体项目。...可以使用哪些超媒体项目主要由所选的媒体类型决定。我们当前用于构建 Web API 的很多媒体类型(如 JSON 或 XML)和 HTML 一样,不提供表示链接或表单的内置概念。...现在我们来了解一下如何在使用 ASP.NET Web API 的生产环境中实际实施这些原理,并使用此框架提供的所有可扩展性和功能。 在内核级别,ASP.NET Web API 支持格式化程序的概念。...HAL 格式,但是您还可以使用类似方法来构建使用 Razor 的格式化程序和将模型序列化为 XHTML 的模板。...Azure 构建面向服务的应用程序。
于是带着问题去查找解决方案,在网上一通乱搜后查找出以下两个工具:AspNet.WebApi.HelpPage,Swagger。
ASP.NET Core WebApi 创建项目 使用VS新建项目,选择ASP.NET Core WebAPI即可。...配置IOC容器 public void ConfigureServices(IServiceCollection services) { services.AddMvc(); } 配置路由 WebApi...采用RestFull请求方式,对于Controller,需要使用Route特性配置路由;Controller中的Action则通过Http特性进行配置。...由于WebApi没有Web页面,所以需要使用PostMan进行请求。 发布和部署 生成的文件包含程序用到的所有dll和静态资源,发布到制定目录后,在命令行启动程序。...ASP.NET Core使用Kestrel作为Web服务器运行,可以与IIS、Apache、Nginx等反向代理服务器结合使用。
王小二顿到感觉无与伦比的器重和自豪感,于是晚上回家撸起键盘就是一顿baidu+google搜索,最后惊奇地发现了一本叫《ASP.NET WebAPI构建API接口服务实战演练》葵花宝典。...3)、工作中如何快速通过ASP.NET WebAPI构建API接口服务。 4)、阿笨手把手的教会你如何写一手漂亮的WebAPI接口文档。...4)、ASP.NET WebApi标准格式化统一输出响应报文数据 。 5)、ASP.NET WebApi标准格式化统一输出异常报文数据 。...我们如何优雅使用ASP.NET WebAPI构建API接口服务。 如果您对本次分享课程感兴趣的话,那么请跟踪阿笨一起学习吧。废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运工。...二、手把手教会用ASP.NET WebAPI构建API接口服务 2.1、与Web API的第一次亲密接触,"奇葩"的默认路由配置 王小二刚兴致勃勃打开葵花宝典手册,一上来就遇到404访问不了情况。
构建一个优秀的API依赖于伟大的框架,今天我们的主角当然是微软的跨平台轻量级HTTP服务框架——Asp.net Core WebApi。...今天阿笨将给大家带来的分享课程是如何利用ASP.NET Core WebApi跨平台开发技术构建我们的API服务应用程序并在部署运行不同的OS系统平台上,真真的体现.NET Core的跨平台强大之处: ...★ 开箱即用的BaseApiController工具基类,WebApi你值得拥有 ★ ASP.NET Core WebApi开启服务端跨域CORS ★ ASP.NET Core WebApi复杂参数传递使用技巧小结...1.4、一句话总结今天我们学习达到的目标: 如何使用基于ASP.NET Core WebApi跨平台技术快速的来构建API接口服务。...七、开箱即用的BaseApiController工具基类,WebApi你值得拥有 八、ASP.NET Core WebApi开启服务端跨域CORS 九、ASP.NET Core WebApi复杂参数传递使用技巧小结
在 ASP.NET WebAPI 中使用 DataAnnotations 验证数据 为了 Web 服务的安全, 通常在服务端也会做数据验证, 不过数据验证的代码确实是有点儿枯燥, 以简单的用户注册来说,...else { return BadRequest(errors); } } } 上面的验证代码确实有点儿多, 而且很枯燥, 不过在 ASP.NET...WebAPI 中, 可以使用 DataAnnotations 来简化数据验证, 稍微修改一下上面的 RegisterModel , 为要验证的字段添加验证标记, 代码如下: public class...[Required, Compare("Password")] public string Confirm { get; set; } } 添加了对应的验证标记之后, ASP.NET WebAPI..., "model.Confirm": ["The Confirm field is required."] } } 值得注意的是, DataAnnotations 标记可以嵌套使用
大部分使用Web API的网站都会使用版本化Web API,这是因为当我们升级Web API的时候并不能保证所有的客户端使用的都是最新的Web API,有些旧版本的客户端很有可能使用的某个甚至某几个在新的...如果这时我们部署新的Web API的话,旧版本的客户端就无法使用了。因此Web API 的版本化就出来了。下面我们就来一步一步的实现Web API的版本化。...{ //在请求的响应头部显示所有拥有的版本号 p.ReportApiVersions = true; //在请求链接中未设置版本时使用默认版本...p.DefaultApiVersion = new ApiVersion(1, 0); }); //more code //... } } 接下来就是使用版本号了...{ //more code //.... } } } 上面的代码解决了不同版本号的问题,但是这种方法并不完美,它不符合Restful规范,我们可以使用
ASP.NET WebAPI使用Swagger生成测试文档 SwaggerUI是一个简单的Restful API测试和文档工具。简单、漂亮、易用(官方demo)。...通过读取JSON配置显示API .项目本身仅仅也只依赖一些html,css,js静态文件.你可以几乎放在任何Web容器上使用 捣鼓了好久最终效果如下 1、API控制器和action描述 2、测试接口...使用swagger 1.创建webapi项目解决方案 2.引用swagger nuget包 swashbuckle和swagger.NET 删除多余的SwaggerUI文件夹和配置类SwaggerNet
WCF 过得好好的, ASP.NET 也如此,每种技术都有使用其的理由。正如这篇文章说得好, "SOAP的世界与HTTP 服务的世界是完全不同的。...SOAP 允许我们将我们的服务所需的所有知识放在信息本身中",而"您可以使用 [Web API] 来创建只使用标准HTTP 概念 (URI 和动词)的HTTP服务,和创建使用更高级的 HTTP功能的服务...— — 请求/响应标头,超媒体概念等。...ASP.NET Web API做到这两点。...以上内容来自:微小的开心功能第2部分-Visual Studio 2012 中的ASP.NET Web API MVC4 WebAPI(一) MVC4 WebAPI(二)——Web API工作方式 http
一.WebApi处理架构: 我们在学习Asp.Net WebApi时,应该对Asp.Net WebApi的内部运行机制有一个大致的了解,很多人说了解这些基本原理的意义不大,实际开发中应用不到而且还浪费时间...(2).Web托管,即在IIS之上使用ASP.NET管道进行托管。...(在一个owin兼容的服务器上建立一个webapi层) 在使用web托管时,所使用的是ASP.NET的管道和路由功能,将HTTP请求转发到一个新的ASP.NET处理程序,HttpControllerHandler...这个程序接收到HtppRequest实例转换成HttpRequestMesssage实例,然后推送到WebApi管道,从而在传统的asp.net管道和新的asp.net webapi架构间建立起链接。...五.总结: 本文分为上下两篇,简单的介绍类一下Asp.Net WebApi的一些核心对象,并简单介绍了Asp.Net WebApi路由机制,处理架构,托管方式等等,如有不足和错误之处还望多多指正。
,或者经常使用,因为对于其他的分布式技术的问题,在使用的时候会比较的繁琐,但是Asp.Net WebApi可能会简便和快捷很多。...下面具体介绍一下Asp.Net WebApi技术。...一.WebApi概述: ASP.NET Web API是在.NET Framework之上构建的Web的API的框架,ASP.NET Web API是一个编程接口,用于操作可通过标准HTTP...ASP.NET Web API可提供各种HTTP客户端使用,可以使用web基础设施提供的服务。 ...ASP.NET WebAPI使用HTTP方法,而不是URI路径,以此来选择动作。还可以使用MVC样式路由的WebAPI。
从 .NET 3.5 开始 WCF 已经支持用 WebHttpBinding 构建 RESTful Web 服务,基于 WCF 框架的 RESTful Web 服务还是建立在 WCF Message 栈上...Same Formatters Same Operation handlers Filters, model binders ASP.NET Web API构建于ASP.NET引擎之上和共享了许多ASP.NET...Web API框架内部自动支持XML和JSON格式,用户可以自行开发其他类型的超媒体类型。...ASP.NET Web API还有一个特性就是可以类似于WCF自宿主方式部署,当然也可以在IIS上运行。 下面来看看如何使用 ASP.NET Web Api (使用的是 VS2010版) ?...blogs.msdn.com/b/carlosfigueira/archive/tags/aspnetwebapi/ http://www.codeproject.com/Articles/344078/ASP-NET-WebAPI-Getting-Started-with-MVC4
不过可惜了,今天我们讲解的主题不是这几种技术,今天主要讲解的是ASP.NET WebAPI。 ...对于ASP.NET WebAPI的优势和特点,在这里就不讲了,需要用到的自然就会选择,也不需要我浪费篇幅去讲解这些,这篇博文主要讲解ASP.NET WebAPI中的HTTP消息的结构和处理消息的核心对象...WebAPI都有所了解。...,需要使用HtppContent的方法或者扩展方法。...我们需要注意的几点,主要为委托的创建和使用,在C#中,尽量使用有.NET提供的委托类,不要自己去创建。
所以我们需要使用某种安全机制来保证请求的合法。现在最常用的办法是给每个http请求添加一个签名,服务端来验证签名的合法性,如果签名合法则执行响应的操作,如果签名非法则直接拒绝请求。...签名算法 签名算法一般都使用Hash散列算法,常用的有MD5,SHA系列算法。这些算法可以根据不同的输入,计算出不同的结果,而且碰撞的概率很低。 签名算法跟加密算法不是一回事。...很多同学都会说使用MD5加密一下,其实这是错误的。签名算法不能恢复原来的数据,因为它本身并不包含原来数据的信息。 而加密方法不同,加密方法是可以根据加密结果重新推算出原来的数据的。...HMAC SHA作为一种更加安全的签名算法,使用一个Key来影响签名的结果。这样同样的输入配合不同的Key可以得出不同的签名,更加安全。...一般我们使用http请求的queryString然后加上时间戳还有随机数来作为签名的参数。
写在前面 是这样的,我们现在接口使用了Ocelot做网关,Ocelot里面集成了基于IdentityServer4开发的授权中心用于对Api资源的保护。...下面我们需要创建两个示例项目: 1、IdentityServer4的授权中心; 2、使用SwaggerUI做自文档的WebApi项目; 写得有点乱,本文源码地址: https://github.com.../gebiWangshushu/cnblogs-demos/tree/master/SwggerUI.IdentityServer4.Example 构建基于IdentityServer4授权中心...1、新建空白解决方案,并添加一个空的WebApi项目,IdentityServer ?...使用SwaggerUI做自文档的WebApi项目 1、添加WebApi项目,SwaggerUIApi 现在项目结构这样: ?
ASP.NET WebAPI 中的参数绑定 当 WebAPI 调用 Controller 上的方法时, 必须为其参数赋值, 这个过程就是参数绑定。...本文介绍 WebAPI 如何绑定参数, 以及如何进行自定义。 WebAPI 默认使用下面的规则进行参数绑定: 简单类型, WebAPI 尝试从 URL 中获取它的值。...使用 [FromUri] 要强制 WebAPI 从 URL 读取一个复杂类型的参数, 则需要在该参数上添加 FromUri 标记。...Post([FromBody] string name) { ... } 在这个例子中, WebAPI 需要使用 media-type formatter 从 request正文 (body) 中读取...使用 Type Converter 通过创建 Type Converter , 实现从字符串转换的方法, 可以让 WebAPI 将复杂类型参数视为简单类型参数。
WEBAPI中的Request是HttpRequestMessage类型,不能像Web传统那样有querystring和from 方法接收参数,而传统的HttpReqest的基类是HttpReqestBase...所以这里我们就直接使用(HttpContextBase)Request.Properties[“MS_HttpContext”] public void Post([FromBody]string value
如果我们再WebAPI中定义了只有一个string参数的WebAPI函数,如下所示: [HttpPost] public string TrackBill(string str) {...返回值为null 也就是说匹配到了webapi中的post方法,但是该方法根本没有接收到postman中传递过去的key 为str Vaue为123的值。...我们在postman中把key空着,然后value为123,结果webapi中的post函数成功获取到了改值。 不知道微软在这样设计的时候出于什么考虑。 3.第三步。...我们直接在url中按照路由规则给str1和str2指定了值,并且WebApi中的post函数成功获取到了其值。
Multiple actions were found that match the request:
当我们编辑好一个WebApi应用程序后,需要对该Api接口进行调试,传统的调试办法是在方法内设置断点,然后用PostMan等http工具模拟访问进行查看WebAPI的运行情况,但这种除了效率较低还进行出现...首先,我们在解决方案中新建一个ASP.NET WebAPI应用程序。 如图所示。 ? 点击确定后,选择空 并勾选WebAPI ? 然后填加一个Vaule控制器 ?...System; using Microsoft.VisualStudio.TestTools.UnitTesting; using TestDemo.Controllers; namespace WebApi_Test
领取专属 10元无门槛券
手把手带您无忧上云