[英]Return any response from my Web API in result object
我有一個 ASP.NET Core 5 Web API。如何在結果 object 中返回所有控制器的Result
,而不考慮 controller 的返回類型?
是這樣的:
Result: {
"isSuccess": {{True or False}},
"value": {{Result Value Object}},
"error": {{Error Object}},
"totalCount": {{number of results, in case the result is list}}
}
你應該能夠像這樣實現你正在尋找的東西:
public class ResultActionResult<T> : ActionResult
{
public ResultActionResult(T value)
{
Value = value;
IsSuccess = true;
}
public ResultActionResult(Error error)
{
Error = error;
IsSuccess = false;
}
public T Value { get; }
public Error Error { get; }
public bool IsSuccess { get; }
public int? TotalCount { get; set; }
public override async Task ExecuteResultAsync(ActionContext context)
{
var objectResult = new ObjectResult(this)
{
StatusCode = IsSuccess ? 200 : 400
};
await objectResult.ExecuteResultAsync(context);
}
}
這將為您提供兩個構造函數:一個用於成功結果,另一個用於錯誤結果。 四個屬性:Value 會保存結果值 object,Error 會保存錯誤 object,IsSuccess 會是你的 boolean 告訴你結果是成功還是錯誤,TotalCount 會保存結果總數,如果結果是一個列表。 class 還覆蓋了 ExecuteResultAsync 方法以返回一個 ObjectResult,狀態代碼為 200 表示成功,400 表示錯誤。
要使用它,只需從您的 controller 操作返回一個實例。 希望這就是您要找的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.