单/多资源GET的RESTful Web URI设计

时间:2011-10-03 02:14:30

标签: rest get uri

  

可能重复:
  Rest URL design - multiple resources in one http call

我在这个网站和网上寻找答案,但还没有找到解决这个问题的最佳方法。

举个例子,假设我有以下REST API

单一资源REST API非常简单:

  

/ car / {id} - >通过id获取汽车

获取汽车列表的多个资源:

  

/ cars; ids = {id1,id2,id3 etc} - >按ids获取汽车列表

     

/ cars; list-id = {listId}; count = 5 - >获取由保存的列表ID定义的汽车   在云中

     

/ cars; relatives = {id}; count = 5 - >获得与汽车相关的汽车   由id

指定

list-id可以指定要返回的任意元素列表。 / cars将返回该列表中定义的汽车。

注意:矩阵参数relatives,id和list-id不能全部用于单个GET请求。例如,如果出现id和list-id,那么id将优先。

问题:是否应重新设计?如果是这样,怎么样?感谢。

1 个答案:

答案 0 :(得分:1)

如果您只用一辆车查看汽车作为列表ID怎么办?列表ID可以指一辆车或多辆车。为此,列表ID和车辆ID必须共享相同的“域”。一个没有优先于另一个,因为它们实际上是相同的东西 - 汽车列表。

GET / car / {id}可以是一辆车或一辆车。

GET / car / {id} / related将返回与汽车ID中的汽车列表相关的那些汽车的列表。但是这个列表没有自己的ID(还)。

POST / car / {id} / related将返回汽车列表的列表ID。然后可以将其与GET / car / {id}一起使用,以返回同样使用GET / car / {id} / related间接检索的汽车列表。