ASP.NET Core Web API/Minimal API微服務開發實務

高光弘 Ray Kao

  • 恆逸教育訓練中心-資深講師
  • 技術分類:程式設計

 

 

在現代軟體開發中,建立可靈活擴展且易於維護的應用程式是一個關鍵挑戰。為了滿足這些需求,許多開發者轉向微服務架構,並使用Web API/Minimal API作為開發和部署應用程式的實作手段。

Minimal API是一種以簡單、直觀的方式建立輕量級Web API的方法。相較於傳統的Web API,Minimal API更加精簡,減少了冗餘程式碼和配置,使開發者能夠專注於實現核心商業邏輯。

本文將介紹如何使用REST Client來測試Minimal API。REST Client是一個強大的工具,可以幫助開發人員模擬HTTP請求和回應,從而驗證API的正確性和可靠性。

什麼是微服務

微服務是一種架構,將應用程式拆分為一組小型、獨立部署的服務,每個服務都專注於執行特定的商業邏輯。每個微服務都可以獨立開發、部署和擴展,這使得軟體團隊可以更快速地發布新功能。


什麼是Web API

Web API(網路應用程式介面)是一種通過網際網路提供服務的應用程式介面。透過 HTTP協定來進行通信和資料交換。Web API可以作為服務的端點。


什麼是Minimal API

Minimal API相較於Web API,使用更輕量、簡單且直觀的方法,以最小的程式碼和複雜度來實現所需的功能。這種方法通常與特定的開發框架或平台相關,例如ASP.NET Core中的Minimal API。


Minimal API實作開發範例

使用Visual Studo 2022建立【ASP.NET Core Empty】專案,直接在Program.cs實作Category服務。

  • /categories傳回所有Category資料
  • /categories/{id}傳回指定id對應的Category資料
    var builder = WebApplication.CreateBuilder(args);
    var app = builder.Build();
    
    List<Category> categories = [
        new (1,"Category1"),
        new (2,"Category2"),
        new (3,"Category3"),
        new (4,"Category4"),
        new (5,"Category5"),
    ];
    
    app.MapGet("/categories", () => categories);
    app.MapGet("/categories/{id}", (int id) => { 
        var category=categories.Find(c=>c.Id==id);
        if (category == null) return Results.NotFound();
        return Results.Ok( category);
    });
    
    app.Run();
    
    public record Category(int Id, string Name);          

如何使用REST Client測試Minimal API

Visual Studo 2022在.17.8版之後,提供一個便利的方式可以測試Web API或Minimal API稱為REST Client,只需要在專案加入新項目【HTTP File】就可以使用REST Client進行測試。


由於REST Client進行測試所需要的路徑為絕對路徑,這個資訊可以從專案的【launchSettings.json】取得,注意要依啟動方式找到對應的設定值。

在app.http檔案加入用來測試Minimal API的指令,用###來分隔多個Request

    GET http://localhost:5188/categories
    ###
    GET http://localhost:5188/categories/1             

啟動程式後,點選【Send Request】連接,得到Category集合,資料已轉換成JSON格式。

接著點選第二個測試連結,取得id為1的Category資料。

總結

微服務架構可以使用Web API/Minimal API技術進行實作,Minimal API相較早先的Web API,程式碼部分是更加簡略,不需要Controller。測試Web API/Minimal API的方式,除了可以使用傳統的POSTMAN工具之外,現行的Visual Studio 2022提供另一種便利的測試手段—REST Client,讓Web API/Minimal API的測試更加直覺簡單。

想要以微服務架構實作ASP.NET Core Web API/Minimal API,對傳統使用C#開發人員的挑戰並不小,以下是開發人員應該具備的基礎知識:

  1. C#語言:尤其是泛型委派與Lambda運算式。
  2. ASP.NET Core:理解Middleware、DI、Routing、Configuration、Logging等基本概念。
  3. HTTP協議:了解HTTP方法、狀態碼、標頭和主體等基本知識。
  4. RESTful API設計原則:熟悉URI設計、資源定義、HTTP方法使用、狀態碼選擇等設計原則。
  5. 資料庫存取:使用ADO.NET或Entity Framework Core對資料庫進行資料處理。
  6. Docker:了解Docker可以幫助更輕鬆地部署和運行ASP.NET Core Web API。

由於需要具備的知識多且雜,【UAC399】ASP.NET Core Web API/Minimal API微服務開發實務 課程,即針對以上內容設計,讓開發人員能透過單一課程訓練掌握ASP.NET Core Web API/Minimal API微服務開發實作方法。
如果您已具備C#程式開發經驗,想學習ASP.NET Core Web API的話,【UAC399】ASP.NET Core Web API/Minimal API微服務開發實務 課程,更是目前最適合您的課程。