我在这个网站和网上寻找答案,但还没有找到解决这个问题的最佳方法。
举个例子,假设我有以下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将优先。
问题:是否应重新设计?如果是这样,怎么样?感谢。
答案 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间接检索的汽车列表。