REST API网址模式的推荐方法是什么?

时间:2015-04-16 06:47:51

标签: rest url routes

例如,每个video都有一个且只有一个所有者。

如果我想添加listVideosByOwner的功能,首选哪种模式? (更多RESTful)

  1. videos/owner/${ownerID}
  2. owner/${ownerID}/videos
  3. videos/byOwner/${ownerID}
  4. 有没有人有这方面的想法?

3 个答案:

答案 0 :(得分:1)

另一种方法是使用ownerId的查询参数:

GET /videos?ownerId=${ownerId}

这是广泛使用的按属性过滤集合模式。

答案 1 :(得分:0)

我更喜欢解决方案nr.1,因为视频绑定到所有者。如果您调用该方法查看一个所有者的所有视频,则通过REST调用发送ownerID是有意义的。

答案 2 :(得分:0)

理想情况下,这将是一个HTTP GET资源,我将按以下方式设计我的资源URL:

GET /videos?ownerId=theOwnersId
  1. 这是有道理的,因为您要查询服务器上的视频。查询是一种幂等操作,类似于数据库检索;因此,它必须是HTTP GET。
  2. 返回的REST资源应始终为复数而不是单数,因为服务器被认为具有您尝试查询的资源集合。因此,视频而非视频
  3. 如果仅使用/videos指定,理想的REST资源应返回其拥有的所有视频的列表。在您的情况下,我们需要的是能够基于 ownerId 进行查询。因此,我们必须将查询参数ownerId添加到REST URL。
    • 在服务器端实现此REST资源时,我会检查请求URL是否有查询参数。如果是,我必须返回与该所有者相关的所有视频。如果不存在查询参数,我将返回我拥有的所有视频的结构化数据集。
  4. 进一步阅读 - http://www.restapitutorial.com/