本文需要您了解ASP.NET Core Web API 和 xUnit的相关知识....如何进行集成测试 如果我想测试一个API Controller的Action, 我可能需要把这个项目运行起来, 等它跑起来, 发送请求并检验结果. 但这样做的话需要很多的配置工作, 并且很麻烦....ASP.NET Core应用里, 我们在Program.cs里创建WebHostBuilder, 并配置Kestrel Web服务器, 使用Startup类进行应用配置, 注册服务和中间件等....最终在WebHostBuilder上使用Build()来创建WebHost的实例, 它可以用来在特定的URL和端口上运行并监听请求....测试代码使用HttpClient发送请求接收响应. TestServer会转化请求并交给ASP.NET Core MVC/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
覆盖建站/短视频等热门场景,提供媒资管理、短视频 SDK、小程序插件和播放器云+端一体化能力,助您抓住视频风口
什么是Web API HTTP不仅仅服务于Web Pages。他也是一个创建展示服务和数据的API的强大平台。HTTP是简单的,灵活的,无处不在的。...而Web API是提供了一套RestfulAPI的开发框架,它提供了较为完整的http语义支持。... Web API主要用于做开放API接口,更抽象,更不注重VIew生成 2.自身实现区别 两种框架主要使在Asp.Net的基础上进行改造,主要是对...而Web API除了扩展前者外,另外写出了一套独立的,独立于Asp.Net的消息处理管道,就像借鉴了原来的房子模型,重新设计出了另一套别墅,这也很好的解释了为什么Web API可以寄宿在不同的宿主上(宿主本质就是利用一个具体的一个用程序为...Web API提供给一个可运行的环境,并解决请求的接收和响应的回复),如 Web Host,Self Host方式,这与WCF相似。
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注解属性来覆盖动作名。...当选择一个Action时,这个框架只考察控制器的public实例方法。
现在我们来了解一下如何在使用 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
在《通过扩展让ASP.NET Web API支持W3C的CORS规范》中我们通过自定义的HttpMessageHandler为ASP.NET Web API赋予了跨域资源共享的能力,具体来讲,这个自定义的...接下来我们通过实例演示如何利用ASP.NET Web API自身的支持来实现“跨域资源共享”。 ? 如图右图所示,我们利用Visual Studio在同一个解决方案中创建了两个Web应用。...从项目名称可以看出,WebApi和MvcApp分别为ASP.NET Web API和MVC应用,后者是Web API的调用者。...ASP.NET Web API对CORS提供的原生支持实现在一个名为“Microsoft ASP.NET Web API 2 Cross-Origin Support”的NuGet包中。...Web API支持W3C的CORS规范》实现CORS的实例一样,ASP.NET Web API自身也是借助于应用在HttpController类型或者定义其中的Action方法的特性来定义CORS授权策略的
创建一个Web API项目 第一步,创建以下项目 ? 当然,你也可以创建一个Web API项目,利用 Web API模板,Web API模板使用 ASP.Net MVC提供API的帮助页。...ASP.NET Web API使它容易操作HTTP响应消息。...默认情况下,ASP.NET Web API框架从路由获取简单的参数类型,从请求正文获取复杂的类型。 第五个方法:删除产品,在控制器添加代码如下。...在这种情况下,DeleteProduct方法具有void返回类型,因此ASP.NET Web API自动转换此状态代码204(无内容) 运行测试 方法创建完毕后我们就可以运行服务端进行测试了 ? ...上述测试我们发现我们的路由只是“api/{controler}”就成功返回了GetProducts方法中的数据,这也是ASP.NET Web API与ASP.NET MVC 之间的区别。
ASP.NET Web API 是一种框架,用于轻松构建可以访问多种客户端(包括浏览器和移动设备)的 HTTP 服务。...ASP.NET Web API 是一种用于在 .NET Framework 上构建 RESTful 应用程序的理想平台。 这是 MSDN 给出的官方定义!...关于 RESTful Api 的更多信息, 可以参考 阮一峰老师的文章 理解RESTful架构 RESTful API 设计指南 创建WEB API ?...ASP.NET Web API 可以自动序列化到 JSON、 XML 或某种其他格式,然后写入 HTTP 响应消息的正文序列化的数据。 只要客户端可以读取的序列化格式,它可以反序列化对象。...添加 model 的应用,添加部分测试数据。 ? 使用 POSTMAN 测试 ?
Web API 框架是一个面向 Http 协议的通信框架。相对于 WCF 而言,Web API 只面向于 Http 协议设计,而且没有 WCF 那么繁琐的配置。...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,使用了新的参数绑定类。
路由调试 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不可以需要IIS。可以自己在主机上承载一个Web API 创建WebAPI.Server项目 创建一个控制器项目的服务端 ? ...API 在Program类中添加如下引用 using System.Http; using System.Web.Http.SelfHost; 然后再添加如下代码 using System; using...MyHtppClient { HttpClient client; public MyHtppClient(String uri) { //初始化客户端...MyHtppClient("http://localhost:7777"); myHtppClient.GetAll(); } } } 其它方法在这就不再做测试...配置HttpClient 如果要配置HttpClient,就创建一个WebRequestHandler实例,设置它的属性并将它传递给HttpClient构造函数 WebRequestHandler
HttpResponseException-----HTTP响应异常 如果Web API控制器抛出一个未捕捉的异常,会发生什么呢?...注意:ASP.NET Web API中的异常过滤器与ASP.NET MVC中是及其相似的。然后,它们被声明在不用的命名空间下,且功能也是独立的。...特别强调以下,ASP.NET MVC中使用的HandlerErrorFilterAttribute不会处理Web API控制器抛出的异常。 ...API控制器将该过滤器的一个实例添加GlobalConfiguration.Configuration.Filter集合。...这个集合中的所有异常过滤器会应用于任何Web API控制器Action public class WebApiApplication : System.Web.HttpApplication {
在 ASP.NET Core Web API 集成测试一文中, 我介绍了ASP.NET Core Web API的集成测试. ...所以本文就介绍一下在API集成测试中发送请求时使用Bearer Token作为Authorization Header的情况....API和测试项目这两个项目里....测试身份验证中间件 被测试系统使用了身份中间件: app.UserAnthentication(), 我们也可以测试一下这个中间件的功能, 如果Token不正确的话, 就应该返回401 UnAuthorized...这个测试代码很简单, 就是设置了一个不正确的token, 并Assert返回状态码是401. 该测试会通过: ? 文章略短, 就介绍到这.
1 概要 创建ASP.NET Web Api 时模板自带Help Pages框架。...2 问题 1)使用VS创建Web Api项目时,模板将Help Pages框架自动集成到其中,使得Web Api项目引入了MVC框架开发包,使得项目看起来杂乱。...//获得已有的服务 ICollection baseAssemblies = base.GetAssemblies(); //初始化...WebApiConfig { public static void Register(HttpConfiguration config) { // Web...()); // Web API 路由 config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute
这篇文章主要是介绍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...是基于WCF channel stack,的 WCF Message 实例 ,然后转换到 HttpRequestMessage 实例然后把他们推给上层的消息处理管道。
config.Count().Filter().OrderBy().Expand().Select().MaxTop(null);这样配置使Odata操作符可用(Web Api2的旧版本不必如此设置)。...true)] ,[ODataFormatting],[ODataRouting]这三个特性,由于[ApiExplorerSettings(IgnoreApi = true)] 的影响,在System.Web.Http.Description.ApiDescription...实例中不包含继承自ODataController的控制器;控制器方法使用了[EnableQuery]修饰后才可支持Odata操作符。
ASP.NET Web API 支持 CORS 支持的代码参见 http://code.msdn.microsoft.com/Implementing-CORS-support-418970ee,也可以通过...Nuget 获取WebAPIContrib PM> Install-Package WebAPIContrib 然后给你的Web API的Action 打上标签[EnableCors],例如下面的代码...www.nczonline.net/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
客户端初始化请求到服务器,服务器负责处理请求并返回响应。 这些请求和响应都是围绕这些资源的表示形式进行传递。 Q2. 解释下REST原则? Ans....什么是ASP.NET WEB API? Ans. ASP.NET WEB API 是一个框架用来搭建HTTP服务以供客户端(比如:浏览器,手机,IPhone等)调用。...WEB API 的请求映射到Http动词对应的action;MVC 的请求直接映射到对应的action name。 ASP.NET WEB API是新的框架和ASP.NET框架核心的一部分。...ASP.NET WEB API 路由与 ASP.NET MVC 路由有什么区别? Ans. ASP.NET MVC 与 ASP.NET WEB API 使用路由来监控传入的请求。...不像ASP.NET MVC,Web API仅能接收一个复杂类型作为参数。 Q14. ASP.NET WEB API2中如何启用特性路由? Ans.
4 对第二种方法的错误点分析: 看Web api dll源码中的设置: ?
bool ShouldLog(ExceptionLoggerContext context) { if ((context.Exception is System.Web.HttpException.../ 加载log4net配置文件 LogConfigLoading.Load(AppSettings.Log4netPathForWeb); // 加载Web...API服务 config.Services.Replace(typeof(IAssembliesResolver), new ServiceAssembliesResolver...//获得已有的服务 ICollection baseAssemblies = base.GetAssemblies(); //初始化...new ServiceAssembliesResolver(SysSettings.ServicesLocation));放入try-catch块中,若ServiceAssembliesResolver在实例化的时候不抛出异常
领取专属 10元无门槛券
手把手带您无忧上云