RESTful API中的聚合数据

时间:2012-09-09 13:33:13

标签: api rest

有一个有趣的HTTP API问题,我想要一些意见。我的API允许人们以1-10的比例评分。我有一个GET /ratings端点,列出了用户的评分。我们还想要一种方法来显示用户每天的平均评分。所以我的问题 - 摘要应该是相同的网址,例如/ratings?data=summary,还是它应该是自己的网址,例如/ratingsummaries/ratings/summary

通常情况下,我认为没有正确的答案。摘要是另一种评级视图,在这种情况下它是评级资源,应该是/ratings的一部分吗?或者,是对自己的资源进行评级的摘要,在这种情况下,它应该像/ratingsummaries那样拥有自己的网址? /ratings/summary看起来也不错,但它实际上不是评级的子资源。

期待您的反馈。谢谢大家!

1 个答案:

答案 0 :(得分:2)

我的意见是,如果您正在取回评级列表,请将其设为/ratings/。搜索参数通常以@QueryParam给出。例如ratings?offset=20&records=50&startDate=xx&endDate=yy


/ratings/{id}/用于ID标识的特定评分。


/ratings/{id}/votes获得评级投票。

评级摘要与评级不同,因此它是separte url的候选人 /ratingsummary?startDate=x&endDate=y

或您的路径可以/ratingsummary开头;它可以像是/ratingsummary/ratings?offset=20&records=50&startDate=xx&endDate=yy 在这种情况下,您有评级摘要,然后您可以深入查看对摘要做出贡献的评级列表,然后是一个特定评级等。

理想的是遵循/entities/{idOfOneEntiity}/{attributeOfEntitiy}等模式