我正在做一个项目,并且我的所有客户端操作都严重依赖 web api,无论是帐户详细信息更新、添加新详细信息、修改所有内容都已使用 ASP.NET Web Api 和 Backbone.js 完成
当前场景:
在当前的方案中,我从我的 web api 控制器返回一个布尔值,以指示操作是否成功。
例子 :
[ActionName("UpdateAccountDetails")]
public bool PostAccountDetails(SomeModel model)
{
bool updateStatus = _customService.UpdateAccountDetails(model);
return updateStatus;
}
因此,在对此操作进行 ajax 调用后,我会检查响应的真/假并显示错误或成功消息。
问题 :
现在发生的事情是我开始在我的操作中遇到异常,并且操作一直返回 false,并且显示了错误消息。但我找不到为什么?
所以我想知道是否有每个人都遵循的标准 api 响应结构?
我最初提出了这个想法,让每个 web api 操作都返回这个类
public class OperationStatus
{
public bool Result { get; set; } // true/false
public string Status { get; set; } // success/failure/warning
public List<string> WarningMessages { get; set; }
public List<string> ErrorMessages { get; set; }
public string OtherDetails { get; set; }
}
此更改将是一项重大更改,并且会耗费时间和资源,因此我认为最好对此有第二/第三/第四意见。
请对此提出一些想法。
更新 :
[ActionName("UpdateAccountDetails")]
public HttpResponseMessage PostAccountDetails(SomeModel model)
{
bool updateStatus;
string errorMessage;
try{
updateStatus = _customService.UpdateAccountDetails(model);
if(updateStatus)
{
return Request.CreateResponse(HttpStatusCode.OK);
}
return Request.CreateResponse(HttpStatusCode.InternalServerError);
}
catch(Exception exception)
{
errorMessage = exception.Message;
return Request.CreateResponse(HttpStatusCode.InternalServerError, errorMessage);
}
return updateStatus;
}
对此有什么想法吗?