處理Minimal API的回傳值

高光弘Ray Kao

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

 

 

.NET 6的Minimal Api配合Top-Level Statement讓開發人員可以只需要短短幾行程式碼即可以建立Http Service。Minimal Api回傳的資料類型主要有以下三種情境:


直接將資料回傳

以下的範例分別為字串、物件及陣列

    app.MapGet("/string", () => "Hello World");
    app.MapGet("/object", () => new { Id = 1, Name = "aaa" }); 
    app.MapGet("/array", () => new[] { 1, 2, 3, 4 });    

IResult

使用Results的方法回傳IResult,以下的範例為回傳400狀態碼,使用Results類別的BadRequest方法,其型別為IResult。

    app.MapGet("/400", () => Results.BadRequest());

IResult或其他資料複合的情況

以下程式碼會回傳IResult或User物件,其結果會建置失敗

    app.MapGet("/users/{id}", (int id) => {
        var list = new List {
            new User(1, "Mary"),
            new User(2, "John"),
            new User(3, "Bob"),
            new User(4, "Ken")
        };
        var item = list.FirstOrDefault(u=>u.Id==id);
        if (item is null) return Results.NotFound();
        return item;
    });       

正確的寫法,需要將

    return item;

更改成

    return Results.Ok(item);

結語

Minimal Api回傳資料的方式主要有兩種,直接回傳資料及IResult,Web Api回傳複合資料的情境,在Minimal Api這邊都是要改成IResult方式。