ITKeyword,专注技术干货聚合推荐

注册 | 登录

ASP.NET Web API 运行框架

分享于

2021腾讯云限时秒杀,爆款1核2G云服务器298元/3年!(领取2860元代金券),
地址https://cloud.tencent.com/act/cps/redirect?redirect=1062

2021阿里云最低价产品入口+领取代金券(老用户3折起),
入口地址https://www.aliyun.com/minisite/goods

推荐:ASP.NET Web API 2框架揭秘

ASP.NET Web API 2框架揭秘(.NET领域再现力作顶级专家精讲微软全新轻量级通信平台) 蒋金楠 著   ISBN 978-7-121-23536-8 2014年7月出版 定价:108.00元 732页

简介

本文主要概述下ASP.NET Web API的运行框架,即从接收到一个HttpRequest到相应的过程。

运行框架

API的框架主要如下图所示,主要由3层组成:hosting(宿主)、message handler(消息处理管道)和controller handler(控制器处理器)

 

hosting 宿主

最底层负责web api的宿主,例如这个接口在Web API和HTTP Runtime。简单说这个层负责创建HttpRequestMessage的实例,并且把他们推给上一层的消息处理管道;同时这层还负责把HttpResponseMessage返回给处理他们的管道。

一般有两个现成的hosting可选:SelfHost和WebHost。
SelfHost是基于WCF的,把Message换成HttpRequestMessage,并且推送到上层的消息处理管道。
WebHosting是基于HttpControllerHandler,把HttpRequest转成HttpRequestMessage。

WebAPI的宿主不限于这2个,还有一些社区贡献的,例如Louis Dejardin的OWIN 和 本文作者的一个host,基于Azure Service的。

Message Handler Pipeline 消息处理管道

中间层是由一个消息处理管道组成,类似于一个已有WCF Web API。这个管道暴露一个HttpServer类,他也扩展了HttpMessageHandler(组合模式)。

此管道提供了一些可扩展点,类似:日志、用户认证等。

在此管道上层有一个特别的handler:HttpControllerDispatcher。此handler是为此次请求负责获取、调用一个controller。

HttpControllerDispathcer仅在使用 controller-based programming model控制器基类编程模式(ApiController继承此类)时被使用。正常来说我们都是基于这个模式编码的。

Controller Handling 控制器处理器

最后,这最上层相当于controller的处理流程,就如:

Action selection

Filter 执行

Model binding

Action 调用

通过formatters输出内容

整个过程是在ApiController内部执行,由HttpControllerDispatcher调用。

最后

很多地方加了链接提供了详细的信息,请随意留言吧。

原文:

ASP.NET Web API Processing Architecture

推荐:《ASP.NET Web API 2框架揭秘》 试读

本人是一名测试人员,之前的工作一直从事自动化测试,工作中很大一部分会使用java来编写各种case,现在本人所在的项目组使用的是ASP.NET MVC,故看到ASP相关的书

简介 本文主要概述下ASP.NET Web API的运行框架,即从接收到一个HttpRequest到相应的过程。 运行框架 API的框架主要如下图所示,主要由3层组成:hosting(宿主)、message handler(消息处理管道)

相关阅读排行


相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。