標籤:
ASP.NET WEB API是基於.NET Framework用來構建Restful軟體架構的架構,它是基於HTTP協議。Http不只是能夠產生我們常見的web頁面,它更是能夠建立服務和面向資源的平台。使用HTTP協議建立的服務更加的輕量級,更加的簡潔。不同的用戶端可以更加無縫的使用服務。為了理解為什麼要使用WEB API,首先要理解的一個概念就是Restful。
Restful
Restful是一種面向資源的軟體架構,Rest的全文是Representational State Transfer,即表現層狀態轉換。這樣的字面意義對於我們理解Rest不是很容易,下面,我們使用比較通俗的方式來理解面向資源。在我們日常使用計算裝置時,實際上,計算裝置無時無刻不在與另外一台裝置通訊,比如QQ,等等,我們不斷的從一台裝置上擷取資料,提交資料,更新資料,刪除資料。這裡的資料不單單是指數字和文本,更包括圖片,檔案等等。這種通訊方式稱為分布式通訊。裝置在連接埠的某一處公開一系列的操作供其他裝置使用。這些操作就是服務。我們通過調用裝置公開的服務,完成相關的操作並在必要的時候返回資料。然而,不管是使用哪種方式實現服務。用戶端使用服務都是重量級的,繁瑣的。因為用戶端要為訪問這些服務建立代理,並通過代理來與服務端裝置通訊。而對於一些比較輕量級的通訊,面向服務顯然增加了開發的複雜性。REST 是一種輕量級的面向服務架構風格,其實現和操作比面向服務更為簡潔,可以利用 HTTP 協議實現在響應速度,效能、效率和易用性上都優於面向服務的軟體架構。
Representational State Transfer(表現層狀態轉換)實際上可以看做是表現層資源狀態轉換,下面我們使用一張圖來說明Rest的幾個特性。
通過我們來理解面向資源的幾個重要組成部分、
- 資源:資源即使分布在網路上的裝置實體(比如文本,圖片,歌曲,檔案,資料…)
- 表現層:用於展現資源的裝置
- URI:指向網路實體資源的地址
- 狀態轉換:將無狀態的HTTP協議通過表現層展示狀態
在中,網路中的一個伺服器叢集通過地址http://127.0.0.1/xxx向外部公開資源。智慧型裝置A,B,C(可以是PC,可以是IOS裝置,可以是安卓裝置)通過HTTP協議訪問伺服器公開的地址。伺服器回返回資源給用戶端(此處是json)。用戶端擷取json並組裝資料,轉換狀態呈現給終端使用者。整個訪問完成。Rest可以使用的HTTP動作是Get,Post,Put,Delete。對於面向資源的服務,用戶端的訪問更加的簡潔與高效,並且不需要設定代理,任何平台都可以直接使用擷取的資源。而不需要針對某一個具體的平台做特殊處理。那麼,對於面向資源的服務,不同平台的使用更加簡潔。不同平台的用戶端只需要關注表現層,這個也遵守了軟體架構中的分離關注點原則。
上面簡短的解釋了面向資源的服務,下面的章節,我們來看看ASP.NET WEB API怎麼實現面向資源的服務
ASP.NET WEB API實現面向資源的服務
ASP.NET WEB API簡介