簡體   English   中英

在結果 object 中返回我的 Web API 的任何回復

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM