什么是返回对象中项目总数的最佳RESTful方法?
我正在为一个我参与的大型社交网站开发REST API服务。到目前为止,它的运作非常好。 我可以发出GET
, POST
, PUT
和DELETE
请求来对象URL并影响我的数据。 但是,这些数据会被分页(一次限制为30个结果)。
但是,通过我的API获取说,会员总数的最佳RESTful方式是什么?
目前,我向以下URL结构发出请求:
我的问题是:我将如何使用类似的URL结构来获取应用程序中的成员总数? 显然,只要返回一个30分的结果,只需要输入id
字段(类似于Facebook的Graph API)并计算结果就无效。
尽管对/ API /用户的响应是分页的并且只返回30条记录,但没有什么能够阻止您在响应中包含记录的总数以及其他相关信息,如页面大小,页码/偏移量等。
StackOverflow API是同样设计的一个很好的例子。 以下是用户方法的文档 - https://api.stackexchange.com/docs/users
我更喜欢使用HTTP头来处理这种上下文信息。
对于使用X-total-count
标题的元素X-total-count
。
用于指向下一页,上一页等的Link
。我使用http Link
标题:
http://www.w3.org/wiki/LinkHeader
Github也是这么做的:https://developer.github.com/v3/#pagination
在我看来,它更加干净,因为它可以用于返回不支持超链接的内容(例如二进制文件,图片)。
您可以将计数作为自定义HTTP标头返回,以响应HEAD请求。 这样,如果客户只需要计数,则不需要返回实际列表,也不需要额外的URL。
(或者,如果您处于从端点到端点的受控环境中,则可以使用自定义HTTP动词,例如COUNT。)
链接地址: http://www.djcxy.com/p/40971.html上一篇: What’s the best RESTful method to return total number of items in an object?