Jam*_*hen 73 rest http http-error
我有一个暴露给iPhone和Android客户端的REST服务.目前我遵循HTTP代码200,400,401,403,404,409,500等.
我的问题是建议放置错误的原因/描述/原因的地方在哪里?REST API是否更有意义在标题中始终具有自定义Reason?
< HTTP/1.1 400 Bad Request - Missing Required Parameters.
< Date: Thu, 20 Dec 2012 01:09:06 GMT
< Server: Apache/2.2.22 (Ubuntu)
< Connection: close
< Transfer-Encoding: chunked
Run Code Online (Sandbox Code Playgroud)
或者通过JSON将它放在Response Body中更好?
< HTTP/1.1 400 Bad Request
< Date: Thu, 20 Dec 2012 01:09:06 GMT
< Server: Apache/2.2.22 (Ubuntu)
< Connection: close
< Transfer-Encoding: chunked
< Content-Type: application/json
{ "error" : "Missing Required Parameters" }
Run Code Online (Sandbox Code Playgroud)
Per*_*ion 84
引用400.x错误代码的HTTP规范:
4xx类状态代码适用于客户端似乎有错误的情况.除了在响应HEAD请求时,服务器应该包括一个实体,其中包含错误情况的解释,以及它是临时或永久条件.这些状态代码适用于任何请求方法.用户代理应该向用户显示任何包含的实体.
最佳做法是将错误消息作为实体包含在HTTP响应的主体中 - 无论是JSON,纯文本,格式化HTML还是您可能想要使用的任何其他格式.
Tad*_*eck 22
最好在身体中包含错误详细信息.此外,许多(大多数/几乎所有,例如WSGI)服务器和客户端不支持更改错误代码的名称 - 将它们视为固定对(例如,400总是"错误请求"而不是"错误请求 - 您忘记指定用户ID").即使它们不会中断,它们也不会关心特定错误代码的特殊名称.