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