WebAPI-处理架构

简介: 问题1:HTTP请求和返回相应的HTTP响应信息之间发生了什么?

带着问题去思考,大家好!

问题1:HTTP请求和返回相应的HTTP响应信息之间发生了什么?

image.png

1:首先是最底层,托管层,位于WebAPI和底层HTTP栈之间

2:其次是 消息处理程序管道层,这里比如日志和缓存。OWIN的引用是将消息处理程序管道的一些功能下移到栈下端的OWIN中间件了。

3:控制器处理,HTTP响应,参数的验证和绑定。

托管层

首先是人生三大哲学问题;

1:是WebAPI和底层HTTP基础结构的接口,分三类(Windows进程,[服务啊,控制台啊]&Web托管[Web hosting,IIS]&OWIN的兼容服务器[Katana])

2:它在架构最底层,托管层,位于WebAPI和底层HTTP栈之间

3:它的职责是负责API托管

比如:ASP.NET管道。HttpListener( HTTP 协议侦听器,https://docs.microsoft.com/zh-cn/dotnet/api/system.net.httplistener?redirectedfrom=MSDN&view=netframework-4.7.2).OWIN宿主。

负责创建HttpRquestMessage,返回HttpResponseMessage.转换为底层网络栈处理。

上面第二类,Web托管说下流程,托管层---HttControllerHandler---WebAPI管道,处理后的消息通过HttpResonseMessage实例复制为HttpResonse,然后在转给Asp.Net管道

消息处理管道

这层跟中间件的概念差不多。它有个扩展点,拦截器。

比如:日志和缓存,Web服务器网管接口,Python的WSGI.

首先要知道这几个类,HttpMessageHandler,DelegatingHandler

image.png

继承Object---HttpMessageHandler--DelegatingHandler--MessageProcessingHandler

抽象方法SendAsync接受HttpRequestMessage实例,返回Task<HttpResponse Message>,异步生成一个HttpResponseMessage.这个方法是基于任务的异步模式。

消息处理程序还需要一个数据成员,保存指向一个内部处理程序的指针和数据流逻辑,把请求和响应从一个处理程序委托给他的内部处理程序,DelegatingHandler定义了InnerHandler属性,将一个处理程序连接到其内部处理程序。

HttpConfiguration.MessageHandlers集合属性定义了消息处理程序委托的顺序。

路由分发

在消息处理程序末端。

有路由分发,HttpRoutingDispatcher类实现。根据匹配的IHTTPRoute类选择转发请求所用的下一个处理程序

和控制器分发:HttpControllerDispatcher类实现。调用ExecuteAsync方法,传入请求消息。

控制器处理

可以直接使用IHttpController,通常做法是从抽象类ApiController进行派生。

数据绑定:

ApiController.ExecuteAsync方法调用一系列HttpParameterBinding实例。将参数添加到HttpActionContext实例的ActionArguments字典中

 

 

相关文章
|
JavaScript API 前端开发
dotnet core webapi +vue 搭建前后端完全分离web架构(一)
架构 服务端采用 dotnet core  webapi   前端采用: Vue + router +elementUI+axios            问题 使用前后端完全分离的架构,首先遇到的问题肯定是跨域访问。
7145 0
|
Web App开发 安全 测试技术
|
Web App开发 API 数据库
|
3天前
|
监控 负载均衡 API
从单体到微服务:架构转型之道
【8月更文挑战第17天】从单体架构到微服务架构的转型是一项复杂而系统的工程,需要综合考虑技术、团队、文化等多个方面的因素。通过合理的规划和实施策略,可以克服转型过程中的挑战,实现系统架构的升级和优化。微服务架构以其高度的模块化、可扩展性和灵活性,为业务的持续发展和创新提供了坚实的技术保障。
|
12天前
|
Cloud Native 云计算 微服务
云原生时代:企业分布式应用架构的惊人蜕变,从SOA到微服务的大逃亡!
【8月更文挑战第8天】在云计算与容器技术推动下,企业分布式应用架构正经历从SOA到微服务再到云原生的深刻变革。SOA强调服务重用与组合,通过标准化接口实现服务解耦;微服务以细粒度划分服务,增强系统灵活性;云原生架构借助容器化与自动化技术简化部署与管理。每一步演进都为企业带来新的技术挑战与机遇。
50 6
|
10天前
|
设计模式 监控 API
探索微服务架构中的API网关模式
在微服务的宇宙里,API网关是连接星辰的桥梁。它不仅管理着服务间的通信流量,还肩负着保护、增强和监控微服务集群的重任。本文将带你走进API网关的世界,了解其如何成为微服务架构中不可或缺的一环,以及它在实际应用中扮演的角色和面临的挑战。
|
18天前
|
运维 监控 负载均衡
探索微服务架构中的API网关
在现代软件开发中,微服务架构已成为设计灵活、可扩展系统的首选方法。本文将深入探讨API网关的核心作用,包括它如何简化客户端与微服务之间的交互,提供请求路由、负载均衡、认证、限流及监控等关键功能。我们将通过实际案例分析,揭示API网关在提升系统性能、增强安全性和提高开发效率方面的重要性。