Hello,World

随笔分类 -  WebAPI

摘要:同源策略首先基于安全的原因,浏览器是存在同源策略这个机制的,同源策略阻止从一个源加载的文档或脚本获取或设置另一个源加载的文档的属性。对于同源必须要求URL在如下几个方面相同:网络协议(http与https不同) 域名 端口(80与8080不同) JSONPJSONP是跨域访问的一种方法。在web开发... 阅读全文
posted @ 2015-12-07 21:04 Barlow Du 阅读(1202) 评论(1) 推荐(1) 编辑
摘要:WebAPI中有设计了几种管道(Channel),大概如下:HttpMessageHandler,ActionFilter管道,ExceptionFilter管道。在三种管道中HttpMessageHandler管道与ExceptionFilter管道是基于级别设计的,ActionFilter管道是... 阅读全文
posted @ 2015-11-28 22:17 Barlow Du 阅读(550) 评论(0) 推荐(0) 编辑
摘要:Filter(筛选器)是基于AOP(面向方面编程)的设计,它的作用是Actionr的执行注入额外的逻辑,以达到横切注入的目的。IFilter在WebAPI中所以的Filter都实现了IFilter接口 ,IFilter接口只有一个只读属性AllowMultiple,它表示同类的Filter是否可以应... 阅读全文
posted @ 2015-11-27 21:58 Barlow Du 阅读(2175) 评论(0) 推荐(2) 编辑
摘要:Action的激活大概可以分为如下两个步骤:Action对应方法的调用,执行结果的协商。在WebAPI中由HttpActionInvoker(System.Web.Http.Controllers)进行Action的执行。public interface IHttpActionInvoker { T... 阅读全文
posted @ 2015-11-24 22:08 Barlow Du 阅读(649) 评论(0) 推荐(0) 编辑
摘要:在绑定完Action的所有参数后,WebAPI并不会马上执行该方法,而要对参数进行验证,以保证输入的合法性.ModelState在ApiController中一个ModelState属性用来获取参数验证结果.public abstract class ApiController : IHttpCon... 阅读全文
posted @ 2015-11-09 22:06 Barlow Du 阅读(2743) 评论(0) 推荐(2) 编辑
摘要:在本系列的第二篇简要的讲述了Action的选择条件本篇深入讲述一下Action选择的过程在上一篇中我们已经讲到了Controller的激活过程中已经说到了设置Controller的ControllerContext,再接着就是调用HttpController的ExectuteAsync方法.在该方法... 阅读全文
posted @ 2015-11-05 23:03 Barlow Du 阅读(421) 评论(0) 推荐(0) 编辑
摘要:在Controller之前我们先回顾一下HttpMessageHandler通道。在这个图中我留一个HttpContollerDispatcher没有说明。因为这个类也是继承自HttpMessageHandler,但由于HttpRoutingDispatcher已经不继承DelegatingHand... 阅读全文
posted @ 2015-11-04 22:10 Barlow Du 阅读(1069) 评论(0) 推荐(0) 编辑
摘要:MessageWebAPI作为通信架构必定包含包含请求与响应两个方法上的报文,在WebAPI它们分别是HttpRequestMessage,HttpResponseMessage。对于HttpResponseMessage之前在WebAPI返回结果中有应用。HttpRequestMessage请求报... 阅读全文
posted @ 2015-11-03 21:43 Barlow Du 阅读(868) 评论(0) 推荐(1) 编辑
摘要:WebAPI的中路由设计与ASP.NET相似,但又是独立的一套框架。HttpRoute HttpRoute主要提供了路由模板,用于匹配url,生成virtualPath. public interface IHttpRoute { IDictionary C... 阅读全文
posted @ 2015-11-01 11:04 Barlow Du 阅读(1421) 评论(0) 推荐(0) 编辑
摘要:HttpMessageHandler管道在Web API的中,微软为了更好的进行架构扩展,采用的了一套管道设计----HttpMessageHander(其实WCF也有类似架构).在整个管道中的头与尾分别是HttpServer、HttpRoutingDispatcher,它们都继承HttpMessa... 阅读全文
posted @ 2015-10-17 18:54 Barlow Du 阅读(1922) 评论(3) 推荐(0) 编辑
摘要:ParameterBindingAttribute在上一篇中重点讲了ModelBinderAttribute的使用场景。这一篇详细的讲一下ModelBinder背后的参数绑定原理。ModelBinderAttribute继承自ParameterBindingAttribute,从命名上就是可以看出P... 阅读全文
posted @ 2015-09-27 20:57 Barlow Du 阅读(1252) 评论(0) 推荐(0) 编辑
摘要:在前面的几篇文章中我们都是采用在URI中元数据类型进行传参,实际上ASP.NET Web API也提供了对URI进行复杂参数的绑定方式--Model绑定。这里的Model可以简单的理解为目标Anction方法的某个参数。eg: public Figure GetFigureFromQueryStri... 阅读全文
posted @ 2015-09-20 18:43 Barlow Du 阅读(2022) 评论(4) 推荐(0) 编辑
摘要:在WebAPI中HttResponseMessage作为消息返回,而在ApiController中我们经常讲四类数据作为返回值,void,object(可序列化),IHttpActionResult,HttpResponseMessage,Void与objectVoid:返回状态码200,无数据Ob... 阅读全文
posted @ 2015-09-01 20:44 Barlow Du 阅读(4281) 评论(0) 推荐(1) 编辑
摘要:在WebAPI对于Action的选择主要经过:Action方法名匹配,Http方法匹配,参数匹配三步。Http方法匹配WebAPI提供了三种Http方法的选择方式,分别是:方法前缀,AcceptVerbs特性,HttpXXX特性方法前缀: 在上一篇中都是采用的这种方式,即将Http方法作为Actio... 阅读全文
posted @ 2015-08-28 20:25 Barlow Du 阅读(1740) 评论(0) 推荐(5) 编辑
摘要:WebAPI作为构建RESTful的平台出来有段时间了,加上最近也在用,所以想把自己的心得记录下来。我就以一个简单的增删查改作为开篇。准备实体类(Figure)的定义。 public class Figure { public string FirstName { get;... 阅读全文
posted @ 2015-08-25 23:40 Barlow Du 阅读(1219) 评论(2) 推荐(1) 编辑