如何在RESTful API中实现非CRUD功能?

时间:2017-08-08 19:10:06

标签: php rest api

我正在使用ReactJS构建一个应用程序,该应用程序使用Laravel提供的JSON API。我正在尝试以RESTful方式设计API,但我发现有些案例很难处理。

如何处理需要'特殊'功能高于普通CRUD内容的情况?例如,在我的应用程序的“列表”视图中,我有它可以标记项目。当用户从主列表视图中标记项目时,系统会查找具有相同名称的所有项目,并使用相同的标记自动标记它们,这样用户就不必单独执行每个项目。

我已将此功能直接构建到API的/resource/{id}/update调用中,因此更新一个项目也会导致其他项目更新,但实际上并不是我想要的。

我只希望当用户处于此特定列表视图中时,此“批量更新”才起作用,所有其他时间更新不应影响除正在更新的记录之外的任何记录。如何在不向我的更新端点添加“特殊情况”代码的情况下实现此目的?

1 个答案:

答案 0 :(得分:2)

您可以创建一个新的虚拟资源端点,它不直接与ORM中的对象对应,而是一个为您处理问题的类。原谅可怜的命名尝试,但也许类似于/itemstagger/{itemid}/update'

那个班可以为你处理特殊情况。