指示REST API中的实体 - 用户关系

时间:2012-02-06 11:22:49

标签: rest twitter api-design

假设您正在设计Twitter REST API。有一些名为tweet的实体。用户可以retweetfavorite这些推文。如果您使用用户身份验证参数请求tweet或推文的聚合,那么您如何表明经过身份验证的用户已经retweetedfavorited这些推文而无需第二个API请求?

目前,Twitter APItweet个实体上没有此类字段,但其某些官方客户和某些第三方客户端能够推断该推文是否已被经过身份验证的用户收藏或转发。

按照惯例,REST响应包含实体的元数据,而不是用户实体关系,如果我没有错的话。这是怎么回事,如果你要实现Twitter API,你会在哪里放这些字段,或者你会在每条推文中发出第二个请求?

1 个答案:

答案 0 :(得分:1)

推文实体是关于每个状态的文本。完整的status object包含"favorited": false"retweeted": false等属性。我相信这会导致Twitter问题的缓存,所以你可能会考虑不同的格式。

{
  "data": {
    "id":"123",
    "text":"blah blah"
  },
  "relationship": {
    "favorited": true,
    "retweeted": false
  },
  "links": { ... }
}

这种方式data可以全局缓存,而relationship可以是relationship的特定用户data