我们有一个REST服务端点
OUR_DOMAIN / API / V2 /用户
此端点返回应用程序中活动用户的列表。现在我们还需要显示总用户数。为此,我们考虑了两种方法
{count:15,用户:[{...},{...}]}
OUR_DOMAIN / api / v2 / users:用户列表
OUR_DOMAIN / api / v2 / userscount:用户数
我个人更喜欢选项1,但选项2似乎也符合逻辑,因为根据REST最佳实践,一个REST端点应仅用于一个特定目的。请根据REST最佳实践建议哪个选项更好,为什么?
由于
答案 0 :(得分:0)
事实上,有两种方法可以做到这一点:
在有效负载中。这对应于您的第一个选项。它表示返回数据的结构与平面结构不同,但它确实可以接受
标题。您可以为此添加X-total-count
这样的标头。如果要实现分页,还会链接Link
标头。有关示例,请参阅Github API:https://developer.github.com/v3/#pagination。
由于您在资源路径中使用特定动词,因此返回元素数量的单独服务并非真正REST ...
希望它可以帮到你, 亨利
答案 1 :(得分:0)
在您的特定情况下,我建议选项1.从REST角度来看,它是完全可以接受的,并且是一种广泛使用的方法。在更一般的层面上,如果您的服务不支持分页,您应该让调用者有机会知道在实际发送请求之前将返回多少结果。目的是让呼叫者事先知道响应是否会“淹没”他的结果太多。在这种情况下,选项2是可以接受的,即使它增加了添加单独调用的(可避免的)开销。作为最后一点,我建议添加另一个名为“size”的路径片段,以便url变为例如。
DOMAIN/api/v2/users/size
没有动词。