Kro*_*ock 3 rest api-design http-status-codes
我的 API 有一个限制,每页允许的最大项目数为 50。
例如,如果输入 51,返回给消费者的正确 HTTP 代码是什么?
我考虑过 HTTP 400(错误请求),因为消费者“知道”(基于 API 约定)最大值为 50。在这种情况下,我还将返回包含所描述错误的响应。
分页同样的问题。如果我有 20 行/对象,并且 API 使用者将 21 放入偏移参数中,我是否应该返回总计 = 0 的 HTTP 200?
这绝对属于 HTTP 响应的 4XX 类别。
我认为此用例的发布适当状态是400 BAD REQUEST基于 HTTP 规范(https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1)
6.5.1. 400 错误请求
400(错误请求)状态代码表示服务器由于 被认为是客户端错误(例如格式错误的请求语法、无效的请求消息帧或欺骗性请求路由)而无法或不会处理请求。
用户“知道”API 不会接受,> 50并且服务器将尝试满足符合 API 规则的另一个请求。
我不确定是否理解正确。
200 OK 如果您的 API 显示所有 20 行/对象,而不是默默地说请求成功并且根本没有对象,那么这是正确的!
然而:
如果第 21页不存在,您可以考虑404 Not Found根据您的业务规则。
来自 RFC7231 :
404(未找到)状态代码表示源服务器没有找到目标资源的当前表示,或者不愿意透露该表示的存在。
也许您可以更多地解释第二种情况,我将相应地编辑响应:)
| 归档时间: |
|
| 查看次数: |
2646 次 |
| 最近记录: |