REST - 当我访问资源时,它应该包含所有子资源还是应该在新请求中获取?

时间:2017-04-29 22:08:27

标签: rest

即。我的资源有一个与之关联的用户列表:

  1. 返回包含嵌入其中的所有关联resource对象的user对象
  2. 返回带有用户ID列表的resource对象,然后单独请求user个对象
  3. 返回resource对象,请求资源的用户ID(来自resource_and_user数据透视表),然后在第三个请求中请求user个对象
  4. 这些选项中的任何一个都违反了REST吗?

1 个答案:

答案 0 :(得分:0)

用例应该是推动决策的因素。

如果用例是要转储所有user个对象进行数据传输,那么简单的api/user应该返回一个用户对象列表。选项1

如果用例是为用户提供一些层次结构,例如用户可能有很多博客帖子,那么您可能需要使用数字2,这样您就可以api/user获取用户列表和然后执行api/user/{userId}/blogPost以获取与该用户相关的所有博客帖子。

选项3似乎有点过分了。