我正在尝试创建一个通用类,该类将允许我根据请求是否成功返回结果。
您可以想象,错误响应应如下所示:
{
"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类具有相同的格式。
我将如何实现?