4

假设我有一个 REST API,它具有检索用户和用户照片的基本方法。例如:

// Get a user:
GET /user/123

// Get the photos of a user:
GET /user/123/photos

// Get a photo:
GET /photo/789

这很简单,但是现在我还需要一种方法来检索特定用户的照片数量。我不想检索所有照片,因为这会减慢一切并且没有必要。在 REST API 中做到这一点的最佳方法是什么?

我考虑过实现类似GET /user/123/photo_count“photo_count”之类的东西不是资源,所以这似乎不对。

我将如何在 REST API 中正确呈现此类信息?

4

3 回答 3

4
// Get the photos of a user: 
GET /user/123/photos

这不必实际返回照片,它可以只返回链接列表。

它甚至可以是前 n 个链接的部分列表,其中包含有关总数的信息,以及获取下一个/上一个批次的链接。

于 2013-01-07T13:32:33.263 回答
4

你可以做一些“自定义”的事情,比如将计数作为响应头返回。然后为了获得计数,您将发出一个HEAD,它应该返回没有响应正文的标题(即实际上不加载照片)。

GET /user/123/photos
==>
Headers:
X-Count 23
Body:
<photos>
<photo id="1">...</photo>
<photo id="2">...</photo>
...
</photos>

HEAD  /user/123/photos
==>
Headers:
X-Count 23
Body:
none
于 2013-01-07T14:00:08.763 回答
3

就像对原始帖子的评论一样,您可以将照片计数作为用户“对象”的属性返回。该GET /user/123调用将简单地返回一个包含图片数量作为属性的对象/json/xml。

于 2013-01-14T19:01:21.227 回答