返回错误响应或成功响应

时间:2018-11-23 21:04:49

标签: api generics

我正在尝试创建一个通用类,该类将允许我根据请求是否成功返回结果。

您可以想象,错误响应应如下所示:

{
   "status": "403",
   "message": "Denied:
}

成功的响应应该类似于:

{
   "status": "200",
   "data": []
}

如您所见,两者之间唯一的共同点是它们都具有“状态”。所以我想实现的是,当调用API端点时,它将返回错误结果或实际结果。

到目前为止我所做的。

我创建了一个IResponse界面:

public interface IResponse
{
    HttpStatusCode StatusCode { get; set; }
}

然后创建一个实现IResponse的Response类:

public class Response<T> : IResponse
{
    public T Data { get; set; }

    public HttpStatusCode StatusCode { get; set; }
}

现在它可以接受任何类型的数据,因此在某种程度上对于所有类型的对象都是通用的。

我还有一个IErrorResponse接口:

public interface IErrorResponse : IResponse
{
    string Message { get; set; }
}

然后是一个实现IErrorResponse的ErrorResponse:

public class ErrorResponse : IErrorResponse
{
    public string Message { get; set; }
    public HttpStatusCode StatusCode { get; set; }
}

我遇到的问题是,当我的控制器被调用时,我只能返回Response,这意味着即使发生错误,用户在响应中也会有可为空的“数据”。相反,当出现错误时,我希望响应与ErrorResponse类具有相同的格式。

我将如何实现?

0 个答案:

没有答案