【发布时间】:2014-01-11 16:10:45
【问题描述】:
我正在通过 REST API 中的标头实现分页,例如:
返回多个项目的请求默认分页为32个项目。
请求可以包含
Range标头以指定更多项目。特殊情况:
- 如果请求不包含
Range标头,则返回400 Bad Request。- 如果客户端请求了集合的一部分,但服务器无法提供该部分,
416 Requested Range Not Satisfiable(例如,当集合为空时)。- 否则,服务器返回带有
Content-Ranges标头和206 Partial Content的部分集合。示例
与集合相关的选项和/或要求:
curl -u '<email>:<token>' \ -H 'Accept: application/json; version=1.0.0' \ -X OPTIONS \ https://example.com/foos成功时使用 HTTP 200 响应:
Accept-Ranges: foosAllow: HEAD,GET,OPTIONS获取请求:
curl -u '<email>:<token>' \ -H 'Accept: application/json; version=1.0.0' \ -H 'Range: foos=100-199' \ https://example.com/foos成功时使用 HTTP 206 响应:
Accept-Ranges: foos Content-Range: foos 100-199/1234
如果您发现任何不寻常之处,请不要犹豫,批评。但我对这种行为还是比较满意的。
但是,我也希望可以在不明确询问每页 32 个项目的情况下发送请求。我的意思是,在不指定任何 Range 标头的情况下,默认情况下每页应该有 32 个项目......并且来自服务器的响应代码为 206。因为我想让客户忘记Range 标头。使用 API 会更简单。
如果可能,可以删除以下特殊情况:
如果请求不包含
Range标头,则返回400 Bad Request。
你怎么看?
【问题讨论】:
标签: api rest http-headers