Ben*_*Ben 16 rest http http-status-codes
我想区分不同类型的"未找到"错误.例如,给出以下请求:
GET /author/Adams/works/HHGTTG
作者可能"找不到"或作品可能"找不到",我想区分这两者.
状态:404 - 未找到作者
状态:404 - 找不到工作
根据规范,可以改变原因短语. http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html
6.1.1状态码和原因短语
......这里列出的原因只是建议 - 它们可以被当地的等价物替换而不影响协议......
对同一状态代码使用两个独特的短语也可以接受吗?
并且,这是一种合理的方法还是有更好的约定来表示更细粒度的错误?
最终,我希望有一个客户端库可以抛出AuthorNotFound或WorkNotFound异常,而不是通用的AuthorOrWorkNotFound异常.
您可以让HTTP响应的正文包含一条消息,您可以使用任何其他信息进行解析.
状态代码(在响应中)上的HTTP状态消息可以是您想要的任何内容,它不会影响任何客户端.HTTP客户端通常会忽略消息文本.
当使用你的“shadowed” not found 方法时,你可以使用 404 和响应体:
我仍然不推荐上面提到的子代码,它们为统一的 HTTP 接口增加了很多复杂性和维护工作。以不同的方式构建您的 api 客户端库。让它/author/adams/work/11先调用。如果它返回 404,则调用/author/adams/next 以确定是否是导致 404 的丢失作者。然后您可以抛出相应的 NotFound 异常。
另一种选择是以不同的方式设计最终的 api-client 应用程序。它首先应该调用/author/adams然后如果不是 404 将继续/author/adams/work。所以很自然地,应用程序本身正在下降。但这当然只有在前端内部的页面流适应此调用序列时才有效。
| 归档时间: |
|
| 查看次数: |
5162 次 |
| 最近记录: |