步驟一:新增一個專案
步驟二:選擇Web API範本,並取一個您要的專案名稱(此例專案取名為HelloWebApi)
步驟三:為了讓此教學單純,我們以靜態泛型的List
- 為了產生泛型List
,我們先在Models資料夾中建立一個Product類別,在此檔案中,我們另外再新增一個VoProduct類別,僅含三個屬性(下圖編號3)。 - 有了值物件後,我們在Product類別中,新增一個ProductsData靜態方法(下圖編號4),主要目的是產生四筆靜態資料(您亦可由資料庫產生資料),並回傳包含此四筆的 List
。
步驟四:此驟就開始設計Web Api的重頭戲了。請於Controller目錄夾新增一個 [Web AP控制器空白]
將此Controller取名ProductController
- 編號3:每個Controller都是繼承ApiController
- 編號4:將所有商品資料儲存在 _productList變數中。
- 編號5:設計一個以Get開頭的GetProducts()方法,用來回傳所有的商品資料。
將此專案進行編譯,如果編譯過程沒有錯誤,表示我們已經撰寫好一個可提供所有商品資訊的Web API。如何測試我們寫的Web API呢?瀏覽器本身只能有POST和GET的動作,如果要測試其它諸如PUT、PATCH、DELETE等動作,可能就必須藉由JAVASCRIPT撰寫發送和接收結果的程式碼,更重要的是伺服器傳回的狀態碼更沒辦法透過瀏覽器得知。建議如果要測試WEB API可以透過 POSTMAN (下載點) 這套軟體進行測試。
步驟六:手動啟動IIS Express (參考步驟),此例的Port定義為5000
輸入好指令並執行,系統會在此目錄下(即專案目錄)啟動一個IIS Express 伺服器。(啟動後,請勿將此命令提示字元關閉)。

步驟七:開啟POSTMAN軟體。
(1)我們在ProductController類別中所建立的API方法名稱是GetProducts(),Get開頭表示Client端需要使用Get動作才能使用此API,所以我們在POSTMAN選擇GET。
(2)我們剛剛透過命令提示字元啟動一個本機端的IIS Express (埠號5000),所以網址列輸入http://localhost:5000,至於後面為什麼是 /api/product 呢 ? 這是因為預設的Route的設定,我們打開App_Start目錄夾下的WebApiConfig.cs檔案如下:
這邊預設值的設定表示存取API時,都要固定先加上一個/api/,而含有左右大括符{
至於第三個部分{id},指的就是指系統會尋找符合ProductController類別中,含有一個參數的方法,並且執行此方法。url中的參數只能用在GET方法,如果是複雜型別的參數,就需要使GET以外的動作了(如:POST、DELETE、PUT等等)。
(3) 於POSTMAN選好GET動作、URI也輸入正確後,點選Send按鈕。
(4) 下半部的藍色虛線框是主機Response部分(上半部藍色框是Request),您會發現回傳的Body內容是四筆json格式之商品資料,表示此API如預期般正常執行。(待續)
(3) 於POSTMAN選好GET動作、URI也輸入正確後,點選Send按鈕。
(4) 下半部的藍色虛線框是主機Response部分(上半部藍色框是Request),您會發現回傳的Body內容是四筆json格式之商品資料,表示此API如預期般正常執行。(待續)
沒有留言:
張貼留言