【发布时间】:2013-10-09 18:14:50
【问题描述】:
根据我最近对 REST API 接口所做的大量研究,我有一个理论问题。
首先我明白,在 REST 中,资源应该是名词而不是动词,并且每个资源都应该与下一个资源解耦,但是资源可以返回相同的实体或实体集合,具体取决于资源的用途。
然而,我的重点是执行安静的搜索。
在我所做的所有研究中,我遇到的最常见的解决方案是在 URL 中使用参数
api.test.com/search-cars?param1=val1¶m2=val2
虽然这是标准做法,并没有真正违反 REST 规则,但为什么没有人将搜索参数表示为 id(可能是 JSON 的形式)
api.test.com/cars/{"color":"blue","year":"2013","make":"toyota"}
如果我将汽车视为一种资源并将我的 id 表示为 JSON,我可以轻松地说我确实拥有有限数量的汽车,因此我拥有有限且唯一数量的 id。
此外,这通过符合“resource/id”来促进纯粹的休息
在第一个示例中使用参数有什么好处和坏处?
在第二个示例中使用 JSON 作为带有“过滤器”的 id 有哪些优点和缺点?
您的所有 cmets 都会非常有帮助,因为我需要就如何继续使用我的 API 的第一个资源做出最终决定。另外,我需要有一个强有力的论据让我的老板解释我为什么决定采用这两种方法。
【问题讨论】: