我使用的mojolicious应用程序是基于JSON的,即客户端和服务器之间的交互更多的是JSON结构化数据的交换。
我正在尝试实现一种标准方法,当在 REST 调用期间发生错误时,使用正确的 HTTP 响应代码来处理错误。实施此类标准的最佳方法是什么?我在哪里实施?
我看到了几种方法
创建一个类并列出所有错误响应及其关联内容,可以使用响应代码调用该类,这将返回包含所有关联条目的 JSON 结构(哈希和数组的组合),然后使用 render_json控制器中的 () 方法并将其作为响应返回给客户端
我可以在数据库中创建一个表,其中包含响应所需的所有字段的条目,使用该字段访问 JSON 结构,创建适当的响应并在控制器中使用 render_json() 并将其作为响应返回给客户端。
错误响应的示例可能类似于
{
"Message": "The requested resource is not found"
"Type" : "http://this.is.an.error.com/error/resource_not_found",
"ErrorCode" : 404,
"Created" : "2012-11-05T11:59:29-05:00",
"Request" : "GET /types/Foo/instances"
}
标准化此类响应的正确方法是什么?
正如 titanofold 提到的,我会选择选项 2。
关于错误代码, 尽量坚持标准HTTP 响应状态代码 http://en.wikipedia.org/wiki/List_of_HTTP_status_codes。
除了设置ErrorCode
JSON 中的属性,您应该在响应标头中发送状态代码,因为:
- 您可以在一个地方处理错误 -
error
javascript 函数的回调
- 将来您的后端可能会有其他消费者(例如移动应用程序)
- 这就是它们被发明的原因
使用 Mojolicious 可以非常简单地实现这一点:
$self->render_json( {
Message => "The requested resource is not found",
Type => "http://this.is.an.error.com/error/resource_not_found",
ErrorCode => 404,
Created => "2012-11-05T11:59:29-05:00",
Request => "GET /types/Foo/instances",
},
status => 404);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)