什么是返回对象中项目总数的最佳RESTful方法?

我正在为一个我参与的大型社交网站开发REST API服务。到目前为止,它的运作非常好。 我可以发出GETPOSTPUTDELETE请求来对象URL并影响我的数据。 但是,这些数据会被分页(一次限制为30个结果)。

但是,通过我的API获取说,会员总数的最佳RESTful方式是什么?

目前,我向以下URL结构发出请求:

  • / api / members - 提供成员名单(如上所述,每次30个)
  • / api / members / 1 -根据使用的请求方法影响单个成员
  • 我的问题是:我将如何使用类似的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?

    下一篇: Hierarchical RESTful URL design