WebApi学习总结系列第五篇(消息处理管道)

时间:2023-02-07 19:23:26

引言:

ASP.NET WebAPI的核心框架是一个消息处理管道,这个管道是一组HttpMessageHandler的有序组合。这是一个双工管道,请求消息从一端流入并依次经过所有HttpMessageHandler的处理。在另外一端,目标HttpController被激活,Action方法被执行,响应消息随之被生成。响应消息逆向流入此管道,同样会经过逐个HttpMessageHandler的处理。这是一个独立于寄宿环境的抽象管道,如何实现对请求的监听和接收,以及将接收的请求传入消息管道进行处理并将管道生成的响应通过网络回传给客户端,这就是WebAPI寄宿需要解决的问题。

一、思维导图

WebApi学习总结系列第五篇(消息处理管道)

二、代码

Git地址:asp-net-web-api-2-samples S301-S307

上面地址有七个栗子,都是来源自蒋大哥的书中的栗子。个人觉得挺实用的S305“自定义HttpMessageHandler实现HTTP方法重写”这个栗子挺重要的。

三、相关图示

1.Asp.NET WebAPI消息处理管道

WebApi学习总结系列第五篇(消息处理管道)

2.WebHost下的消息处理管道

WebApi学习总结系列第五篇(消息处理管道)

3.SelfHost下的消息处理管道

WebApi学习总结系列第五篇(消息处理管道)

四、引申阅读

推荐博客:

  1. 【ASP.NET Web API教程】5.1 HTTP消息处理器(推荐博客)
  2. ASP.NET Web API标准的“管道式”设计(作者: Artech)