web api之selfhost模式
內容目錄
(一)關於web api(二)關於self host(三)self host思維導圖
(一)關於web api
最近在做一個關於web api的項目, 在研究web api的寄宿原理時了解到有一種寄宿模式為self host模式.
首先先簡單介紹一下ASP.NET web api的作用.
api顧名思義, 就是應用程序的介面. 使用者可以通過api去調用程序提供的介面來實現功能. 所以web api就是通過web的形式進行api的調用.
而一般來說在開發一個web應用程序的時候, 都需要一個宿主, 去處理client(browser之類的)發來的http request.根據不同的request, 宿主需要將做出不同的action以及response. asp.net中一般的web server(上文提到的宿主)都是IIS.然而今天我們介紹的是一個以非web 應用程序為宿主的web api模型.
(二)關於self host
對WCF有經驗的人應該了解, WCF是一個基於消息的分散式通訊框架.消息藉助客戶端和服務端對等的終結點(EndPoint)來完成, 而終結點由經典的ABC(Address, Binding, Contract)三元素組成.
binding有什麼作用? 這裡面的binding其實是多個binding element對象的有序集合, 通過binding element, 可以創建出對應的channel licenser, 而通過channel licenser可以創建出對應的channel. channel則是實際去監聽請求.
web api如果採用self host模式, 請求的監聽是由一個類型為HttpBinding的binding對象創建的channel licenser管道完成的, 進行請求的接收和回復.
Binding存在的目的在於創建用於處理和傳輸消息的信道棧,組成信道棧的每一個Channel均對應著一個BindingElement,所以Binding本身處理消息的能力由其BindingElement的組成來決定,我們可以通過分析BindingElement的組成來了解消息最終是如何處理的。
(三)self host思維導圖
下面給大家呈現一張我自己繪製的思維導圖, 第一次繪製並不是很好, 將就看吧:
最後附上本人的一個小程序:https://github.com/itdennis/asp.net-web-api-selfhost-demo
※實戰黨必備!5款性價比中端戰靴推薦
※我拒絕了媽媽給我買房的請求!
TAG:全球大搜羅 |