處理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方式。