【问题标题】:RESTful Web URI Design for Single/Multiple Resource GET [duplicate]用于单个/多个资源 GET 的 RESTful Web URI 设计 [重复]
【发布时间】:2011-11-29 15:22:37
【问题描述】:

可能重复:
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、ids 和 list-id 不能全部用于单个 GET 请求。例如,如果 ids 和 list-id 都出现,则 ids 将优先。

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

【问题讨论】:

  • 这可能会有所帮助stackoverflow.com/questions/969585/…
  • Marc,为什么问题没有被合并?这不是一个相同的问题,而是上述问题的点缀(顺便说一句,该链接的描述性不是很强)。
  • 嗯,这让我有了更多的思考,但似乎我目前的设计并不是真正的 RESTful 网页设计?谢谢你的链接。

标签: rest get uri


【解决方案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 间接检索到的汽车列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-30
    • 2018-09-12
    • 2013-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多