假设我有GET /objects/{id}、GET /objects/{code}和POST /objects的端点,正如RESTful设计所规定的,而objects有name和code字段(唯一)。
我想在另一个应用程序中使用objects数据,特别是在name和code上进行自动过滤。
在我看来,选择是
/objects?q={user-input},其中q是用户键入的内容,后端使用LIKE '%{user-input}%'执行SELECT语句/objects/search哪个是RESTful?还有其他选择吗?
发布于 2018-12-11 23:54:46
这取决于我的目标是什么。
如果我的应用程序所做的,除了"cruding“对象,是通过自动完成搜索,或者其他一些固定的搜索,我将使用一个特定的端点和操作。
GET /objects/autocomplete?prefix=<>这看起来可能很奇怪,因为这根本不是RESTful,但我的重点是创建一个简单而具体的端点,以防这就是您的应用程序的全部内容。
但当然,如果应用程序需要支持更灵活的过滤,我会选择一个POST请求与过滤器在有效载荷。
POST /objects/search两者都不一定是非常RESTful的,在我看来REST并不总是最好的策略,更重要的是用例。无论如何,对象"cruding“和relations是(RESTful),所以我将保留这些操作,这就是为什么您可能更喜欢/objects/search而不是仅仅/objects (在GET和POST中),以确保您不影响域。
https://stackoverflow.com/questions/53731907
复制相似问题