1、什麼是Restful
1.1 定義
表徵狀態轉移,一種新的通訊架構。一般用於HTTP。
https://www.runoob.com/w3cnote/restful-architecture.html
1.2 .net下的Restful API
.net下的Restful API採用WebAPI框架,WebAPI和SignalR都是事先服務的框架,但是SignalR面向實時性服務。而WebAPI用於構建常規的Restful API。
l 支持基於Http verb (GET, POST, PUT, DELETE)的CRUD (create, retrieve, update, delete)操作,通過不同的http動作表達不同的含義,這樣就不需要暴露多個API來支持這些基本操作。
l 請求的回覆通過Http Status Code表達不同含義,客戶端可以通過Accept header來與服務器協商格式,例如服務器返回JSON格式還是XML格式;請求的回覆格式支持 JSON,XML,並且可以擴展添加其他格式。
l 原生支持OData:開放數據協議(Open Data Protocol,縮寫OData)是一種描述如何創建和訪問Restful服務的OASIS標準。
l 支持Self-host或者IIS host;支持大多數MVC功能,例如Routing/Controller/Action Result/Filter/Model Builder/IOC Container/Dependency Injection。
1.3 什麼時候需要WebAPI
以下情況需要使用WebAPI:
l Web Service,但不需要SOAP。
l 在已有的Windows Communication Foundation框架上建立non-soap-based http服務。
l 只想發佈一些簡單的Http服務,不想使用相對複雜的WCF配置。
l 發佈的服務可能會被帶寬受限的設備訪問。
l 不需要複雜的MVC框架,Web API 與MVC的區別如下:
n MVC主要用來構建網站,既關心數據也關心頁面展示,而Web API只關注數據
n Web API支持格式協商,客戶端可以通過Accept header通知服務器期望的格式
n Web API支持Self Host,MVC目前不支持
n Web API通過不同的http verb表達不同的動作(CRUD),MVC則通過Action名字表達動作
n Web API內建於ASP.NET System.Web.Http命名空間下,MVC位於System.Web.Mvc命名空間下,因此model binding/filter/routing等功能有所不同
1.4 WebAPI實現的Restful API路由機制
參考:https://www.cnblogs.com/landeanfen/p/5501490.html
2、SoapUI工具模擬Restful API服務器端
2.1下載
官網下載鏈接:
https://www.soapui.org/downloads/thank-you-for-downloading-soapui.html
會自動下載,否則重新輸入:
https://s3.amazonaws.com/downloads.eviware/soapuios/5.5.0/SoapUI-x32-5.5.0.exe
2.2安裝
直接按提示安裝即可,運行界面:
2.3創建Rest project
點擊左側“Projects”,如下:
運行New Rest Project,如下:
錄入:http://localhost:8080/api/test之後,點OK,出來如下界面:
增加一個Get參數id,如下:
到此完成了test的接口定義。
2.3創建Mock服務
右鍵點擊左側的“http://localhost:8080”,彈出如下窗口:
執行“Generate REST Mock service”,則顯示:
修改名字爲Mock服務,點OK,則顯示:
注意運行端口已經被改爲8089.
到此,成功建立模擬Restful服務器。
3、RESTClient工具模擬Restful API前端
3.1下載
官網鏈接:https://www.wiztools.org/index.html
編譯後的下載鏈接:https://github.com/wiztools/rest-client/releases
下載文件:restclient-ui-3.7.1.zip
3.2安裝
解壓到目錄:D:\restclient-ui-3.7.1
雙擊bin\restclient-ui.bat執行:
3.3創建
輸入剛纔在SoapUI中創建的Mock服務地址和參數,如下
點擊右側的按鈕執行:
報404錯誤,查找原因:
查看SoapUI中有兩個Mock服務啓動:
停止一個,後再試:
返回爲空。
查看SoapUI的Mock服務的response 1:
是空的,增加一段json數據:
重新啓動Mock服務。
然後返回RESTClient:
大功告成!!!