使用 ASP.NET Core 創建 Web API系列

使用 ASP.NET Core 創建 Web API

此次主要介紹使用 ASP.NET Core 構建 Web API 的基礎知識。

在本教程中,你將瞭解:

  • 創建 Web API 項目。
  • 添加模型類和數據庫上下文。
  • 使用 CRUD 方法構建控制器。
  • 配置路由、URL 路徑和返回值。
  • 使用 Postman 調用 Web API。

概述本教程將創建以下 API

API

說明

請求正文

響應正文

GET /api/TodoItems

獲取所有待辦事項

待辦事項的數組

GET /api/TodoItems/{id}

按 ID 獲取項

待辦事項

POST /api/TodoItems

添加新項

待辦事項

待辦事項

PUT /api/TodoItems/{id}

更新現有項  

待辦事項

DELETE /api/TodoItems/{id}    

刪除項   

創建 Web 項目

文件菜單中選擇新建”>“項目

選擇“ASP.NET Core Web 應用程序模板,再單擊下一步

將項目命名爲 TodoApi,然後單擊創建

創建新的 ASP.NET Core Web 應用程序對話框中,確認選擇“.NET Core”“ASP.NET Core 3.1”  選擇“API”模板,然後單擊創建

 

添加模型類

模型 是一組表示應用管理的數據的類。 此應用的模型是單個 TodoItem 類。

  1. 解決方案資源管理器中,右鍵單擊項目。 選擇添加” > “新建文件夾 將文件夾命名爲“Models”
  2. 右鍵單擊“Models” 文件夾,然後選擇添加” > “ 將類命名爲 TodoItem,然後選擇添加
  3. 將模板代碼替換爲以下代碼:

構建控制器

  • 右鍵單擊 Controllers 文件夾。
  • 選擇添加”>“新建構建項
  • 選擇其操作使用實體框架的 API 控制器,然後選擇添加” 

檢查 PostTodoItem create 方法

替換 PostTodoItem 中的返回語句,以使用 nameof 運算符:

 [Route("api/posttodoitem")]
    [ApiController]
    public class PostTodoItemController : ControllerBase
    {
        public static List<TodoItem> todoItems = new List<TodoItem>() {
            new TodoItem{Id=1,IsComplete=true,Name="張藝興" },
            new TodoItem{Id=2,IsComplete=true,Name="鄭凱" },
            new TodoItem{Id=3,IsComplete=true,Name="楊穎" },
            new TodoItem{Id=4,IsComplete=true,Name="陳赫" },
            new TodoItem{Id=5,IsComplete=true,Name="李晨" },
        };

       [HttpPost]
        public async Task<ActionResult<TodoItem>> PostTodoItem(TodoItem todoItem)
        {

            todoItems.Add(todoItem);

            return CreatedAtAction(nameof(GetTodoItem), new { id = todoItem.Id }, todoItem);
           // return CreatedAtAction("GetTodoItem", new { id = todoItem.Id }, todoItem);
           
        }
        [HttpGet]
        public async Task<ActionResult<List<TodoItem>>> TodoItems()
        {



            return  await Task.Run(() => todoItems);
            // return CreatedAtAction("GetTodoItem", new { id = todoItem.Id }, todoItem);

        }

        [HttpGet("{id}")]
        public async Task<ActionResult<TodoItem>>GetTodoItem(int id)
        {

            var todoItem = await Task.Run(() => todoItems.Where(x => x.Id == id)); ;

            if (todoItem == null)
            {
                return NotFound();
            }

            return todoItem.FirstOrDefault();

        }
    }

安裝 Postman

本教程使用 Postman 測試 Web API

  • 安裝 Postman
  • 啓動 Web 應用\(在測試時,可在項目的文件夾下,運行  cmd  
  • 輸入:dotnet  watch  run )

例如項目位置爲:

打開Cmd

 

  • 啓動 Postman
  • 禁用 SSL 證書驗證
  • 文件”>“設置常規選項卡)中,禁用“SSL 證書驗證” 

通過 Postman 測試 PostTodoItem

  • 創建新請求。
  • HTTP 方法設置爲 POST
  • 選擇正文選項卡
  • 選擇原始單選按鈕
  • 將類型設置爲 JSON (application/json)
  • 在請求正文中,輸入待辦事項的 JSON
{

Id:5

  "name":"walk dog",

  "isComplete":true

}

選擇Send

 

測試位置標頭 URI

  • Headers 窗格中選擇Response 選項卡。
  • 複製Location 標頭值:

 

  • 將方法設置爲“GET”
  • 粘貼 URI(例如,http://localhost:52655/api/posttodoitem/6)。
  • 選擇Send

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章