2. 背景與項目結構

假設我們有一個簡單的“股票”(Stock)管理 API,項目目錄示例:

/Controllers
StocksController.cs
/Models
Stock.cs
/DTOs
CreateStockRequestDto.cs
/Mappings
StockMapper.cs
/Data
AppDbContext.cs

3. POST 請求的工作原理

  1. 客戶端通過 HTTP POST 將 JSON 放入請求 Body
  2. 控制器方法用 [FromBody] 接收綁定到 DTO。
  3. EF Core 的 DbContext.Add(entity) 將實體置為“跟蹤”狀態,但不立即寫入數據庫。
  4. 調用 SaveChanges() 時,EF Core 才會將變更寫入數據庫。
  5. 最后可通過 CreatedAtAction 返回包含新資源 URL 的 201 Created 響應。


4. 設計請求 DTO(Create Request DTO)

為了避免前端或用戶提交不必要或敏感字段,需要單獨定義 Create Request DTO

public class CreateStockRequestDto
{
    public string Symbol        { get; set; }
    public string CompanyName   { get; set; }
    public decimal PurchasePrice{ get; set; }
    public decimal LastDividend { get; set; }
    public string Industry      { get; set; }
    public long   MarketCap     { get; set; }
}


5. 編寫 Mapper:從 DTO 到模型

DTO 只負責接收外部數據,寫庫前需轉換成 EF 實體 Stock

public static class StockMapper
{
    public static Stock FromCreateDto(CreateStockRequestDto dto)
    {
        return new Stock
        {
            Symbol        = dto.Symbol,
            CompanyName   = dto.CompanyName,
            PurchasePrice = dto.PurchasePrice,
            LastDividend  = dto.LastDividend,
            Industry      = dto.Industry,
            MarketCap     = dto.MarketCap
        };
    }
}


6. 在 Controller 中實現 POST Endpoint

StocksController.cs 中添加創建方法:

[HttpPost]
public IActionResult CreateStock([FromBody] CreateStockRequestDto dto)
{
    // 1. DTO 轉實體
    var stock = StockMapper.FromCreateDto(dto);

    // 2. 添加到 DbContext
    _context.Stocks.Add(stock);

    // 3. 持久化到數據庫
    _context.SaveChanges();

    // 4. 返回 201 Created,并包含新資源 URL
    return CreatedAtAction(
        nameof(GetStockById),
        new { id = stock.Id },
        stock
    );
}

6.1 添加模型到 DbContext

_context.Stocks.Add(stock);

6.2 調用 SaveChanges 并返回 CreatedAtAction

_context.SaveChanges();
return CreatedAtAction(
  nameof(GetStockById),
  new { id = stock.Id },
  stock
);

7. 測試與驗證

  1. 運行 APIdotnet watch run
  2. Postman/Swagger

  1. 檢查數據庫:確認 Stocks 表中插入了新記錄。

8. 小結與最佳實踐

通過以上步驟,你已掌握 ASP.NET Core 中標準 POST 創建接口的核心技巧,助你快速、高質量地交付 API。

原文引自YouTube視頻:https://www.youtube.com/watch?v=yxQ9CSwc_uk

上一篇:

一步步教你進行 Python REST API 身份驗證

下一篇:

深入理解 Repository 模式|.NET Core API 設計最佳實踐
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費