如何改进我的REST API?

时间:2014-11-12 01:59:17

标签: api rest restful-architecture

我对我的REST API仍有一些问题,但仍处于开发阶段。

我有以下端点:

  • /users.json:显示所有用户的列表
  • /users/$username.json:显示单个用户资源
  • /posts.json:显示所有帖子的列表
  • /posts/$post_id.json:显示单个帖子资源

单个帖子资源如下所示:

{"path": "http://api.myproject.com/posts/1.json", "id": 1, "author": "http://api.myproject.com/users/kristof.json", "image": "/images/posts/cxyUzlPo.jpg", "date": "2014-11-09 15:16", "likes": "http://api.myproject.com/posts/1/likes.json", "comments": "http://api.myproject.com/posts/1/comments.json", "likes_count": 0, "comments_count": 0}

如您所见,帖子包含一个字段" author",它定义了与单个用户资源的超链接关系。

现在出现以下问题:我想构建用户创建的所有帖子的订阅源。这很简单:我只是调用/posts.json端点并且我有我的所有帖子......但是当我想向作者显示每个帖子的信息时,我将不得不进行额外的HTTP REST调用列表中的每个帖子?这对我来说效率似乎非常低效且对表现不利?

当然,您现在也可以将作者资源作为嵌套资源添加到帖子资源列表中,但这仍然被视为" RESTful"?

我忙于构建REST API的时间越长(显然我学习的越多),但我必须在"实用REST"之间做出更多决策。和" REST作为宗教"。 : - )

提前感谢您的帮助!

亲切的问候, ķ。

1 个答案:

答案 0 :(得分:0)

您可以在/ posts /的调用中包含每个帖子的作者信息,而且它仍然是RESTful。然后问题就变成了如何包含这些信息。请查看JSON HAL并阅读有关嵌入资源的信息。