程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> WebApi框架概述,webapi框架

WebApi框架概述,webapi框架

編輯:C#入門知識

WebApi框架概述,webapi框架


WebApi框架,可分為三層:托管層、消息處理程序托管層、控制器處理層。

 

一、托管層:

即Host,是WebAPI宿主,如:控制台,Windows服務等。

寄宿方式。

1、定制托管。

2、自托管。

3、Web托管

Owin寄宿 ,如Katana, 在一個Owin兼容的服務器上建立一個WebApi層,生成HttRequestMessage,WebApi處理完畢後,把HttpResponseMessage寫入 Owin上下文。

 

WebApi相關對象(負責框架與外表數據交換的載體,Http包的托管封裝):

1)HttRequestMessage

  WebAPI封裝的請求對象(從Http請求包解析而來,對應之前HttpWebRequest,在System.Net.Http中)

2)HttpResponseMessage

    WebAPI封裝的返回對象(從托管代碼最終生成的http返回請求對象,由框架轉換為http響應包)。

 

二、消息處理程序托管層

 

HttpServer:WebApi 消息處理通道,可在此出添加擴展處理程序,如代理,網關,緩存處理,訪問記錄。

核心對象:HttpMessageHandler 接口。

              DelegatingHandler抽象類, 用於構建處理鏈,通過InnerHanlder屬性進行傳遞,是責任鏈模式實現。

 

處理流程:

1 HttpRequestMessage

 

2、myDelegatingHandler1

    myDelegatingHandler2

    myDelegatingHandler3

 

3、路由分發處理程序

  1)控制器選擇(HttpRoutingDispacher)

         

4、控制分發處理程序   

      1)控制器選擇(HttpControllerDispacher)

    ControllerSelector (工程模式實現)=> ControllerDescription (工程模式實現)。

      2)錯誤處理。

 

5)HttpResponseMessage

  4、3、2、5。

 

三、控制器處理層

1、根據上下文信息,定位控制器中要請求的方法;

 

ApiController

實現IHttpController接口。

功能:身份認證,授權認證,模型檢查。

1)格式化

2)模型綁定

  參數映射為對象模型Hotel hotel

     媒體類型解析。

3)篩選器。

   IActionFilter接口,權限驗證等。

 

----------------

核心對象介紹:

HttpMessageHandler 核心類,針對請求的處理實現在SendAsync中,針對響應的處理通過返回類型Task<HttpResponseMessage>完成 HttpRequestMessage Content屬性封裝Http主體信息 HttpResponseMessage StatusCode、ReasonPhrase屬性表示響應狀態碼與描述 DelegatingHandler 用於構建處理鏈,通過InnerHanlder屬性進行傳遞,是責任鏈模式的實現 HttpServer Dispatcher屬性指向最終的分發器對象,Configuration屬性包含了所有的配置信息。 HttpConfiguration

全局配置信息:托管層、消息處理程序管道層、控制器處理層等配置。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved