【发布时间】:2014-10-26 20:32:46
【问题描述】:
我们正在与移动软件公司整合,以便在移动设备上开发我们的应用程序。
我们的控制器有(简化的)方法,例如:
api/users/1
–GetUserById(...)
api/users/changePassword
–ChangePassword(Person p)
好的。
ChangePassword 可以返回几个适用的错误代码(密码已使用,密码太短,密码废话......)
因此,例如,如果密码已被使用,则 HttpCode 应返回 200 以及附加信息
我们就每个响应都同意这个约定:(附加响应数据)
{
"Success":0,
"ErrorCode": 6,
"ErrorMessage":"already used"
}
但正如我所说,这种结构应该出现在每个响应中。
所以直到现在 - 例如:api/users/1 返回:
{
"userId":1,
"name":"John"
}
但是现在 - 响应应该是:
{
"data":
{
"userId":1,
"name":"John"
}
,
"result": //no errors
{
"Success":0,
"ErrorCode": 0,
"ErrorMessage":""
}
}
他们总是在寻找“结果”对象来查看应用响应。
问题
我假设我应该做的地方是在base.SendAsync(响应部分)之后的消息处理程序中
但是我应该如何包装我通过Request.CreateResponseMessage 发送的常规响应,格式为:
注意,当然在Request.CreateResponseMessage 阶段,我已经有了带有相应结果代码的结果对象。
【问题讨论】:
标签: asp.net json asp.net-web-api