1. 程式人生 > WINDOWS開發 >【譯】ASP.NET Core Web APIs(四):教程:使用ASP.NET Core 建立一個Web API

【譯】ASP.NET Core Web APIs(四):教程:使用ASP.NET Core 建立一個Web API

本教程將介紹使用ASP.NET Core建立一個Web API的基礎知識。

在本教程中,你將學到如何:

  1. 建立一個Web API 工程
  2. 新增一個模型類以及一個數據庫上下文
  3. 基於基架生成一個帶有CRUD方法的控制器
  4. 配置路由,URL Path以及返回值
  5. 使用Postman呼叫Web API

在本教程結束的時候,你會有一個web API,其可以管理儲存在資料庫中的 "to-do"條目。

概述

本教程建立瞭如下API:

API描述請求體響應體
GET /api/TodoItems 獲取所有to-do 條目 to-do 條目的陣列
GET /api/TodoItems/{id} 通過ID來獲取一個條目 To-do條目
POST /api/TodoItems 新增一個新的條目 To-do條目 To-do條目
PUT /api/TodoItems/{id} 更改一個已存在的條目 To-do條目
DELETE /api/TodoItems/{id} 刪除一個條目

如下的圖形顯示了app的設計:

技術分享圖片

預先條件

建立一個Web 工程

  • 選擇 檔案 選單,選擇 新建>>專案。
  • 選擇ASP.NET Core Web Application 模板,並點選 下一步。
  • 將專案命名為TodoApi 並點選 建立。
  • 在Create a new ASP.NET Core Web Application 對話方塊中,確保 .NET Core 和 ASP.NET Core 3.1 被選中,選擇API 模板,然後點選 建立。

技術分享圖片

測試API

專案模板建立了一個天氣預報API,從瀏覽器中呼叫GET方法來測試我們的這個app。

按 Ctrl+F5 來執行app。VS會啟動瀏覽器並導航到https://localhost:<port>/WeatherForecast,其中,<port>是一個隨機選擇的埠號。如果你遇到了一個對話方塊,它問你是否應該信任IIS Express憑證,選擇 是。在接下來出現的安全警告對話方塊中,選擇Yes。

類似於如下的JSON字串將被返回:

[
    {
        "date": "2019-07-16T19:04:05.7257911-06:00","temperatureC": 52,"temperatureF": 125,"summary": "Mild"
    },{
        "date": "2019-07-17T19:04:05.7258461-06:00","temperatureC": 36,"temperatureF": 96,"summary": "Warm"
    },{
        "date": "2019-07-18T19:04:05.7258467-06:00","temperatureC": 39,"temperatureF": 102,"summary": "Cool"
    },{
        "date": "2019-07-19T19:04:05.7258471-06:00","temperatureC": 10,"temperatureF": 49,"summary": "Bracing"
    },{
        "date": "2019-07-20T19:04:05.7258474-06:00","temperatureC": -1,"temperatureF": 31,"summary": "Chilly"
    }
]

新增一個模型類

模型,是一組類的集合,其代表了app操作的資料。對於這個app來說,模型就是一個單獨的TodoItem類。

  • 在解決方案資源管理器中,右鍵專案,選擇 新增>>新建資料夾,將資料夾命名為 Models。
  • 右鍵 Models資料夾,選擇 新增>>類,將類命名為TodoItem 並選擇 新增。
  • 使用如下程式碼替換模板程式碼。
public class TodoItem
{
    public long Id { get; set; }
    public string Name { get; set; }
    public bool IsComplete { get; set; }
}

Id 屬性作為關係型資料庫的唯一主鍵。模型類可以出現在專案的任何地方,但是按照慣例,我們會使用Models 資料夾。