【发布时间】:2019-07-05 17:33:58
【问题描述】:
我正在 Laravel 5.7 中开发一个 rest api。我知道如何制作 api 控制器以及如何定义适当的 api 资源路由,参考控制器中的相应方法,如下所示:
Route::apiResource('platforms', 'PlatformController');
但是,当我尝试在控制器中定义其他一些方法而不是五个 restful 控制器方法(索引、存储、显示、更新和删除)时,我不确定应该使用哪种 HTTP 请求方法。例如,当我在控制器中定义一个用于在数据库中切换布尔值的函数时,“Get”、“Post”或“put”方法都可以工作。那么,哪一个是最好的选择呢?
【问题讨论】:
-
您的问题很可能会引起固执己见的回答。但是您是否考虑过“PUT”,因为正如我所见,您只是更新数据库中的一个布尔值?
-
好吧,那没关系,不是吗?否则你可以使用PATCH。另一种选择是创建一个新的 PUT 路由,它只是执行最中立的选项。 GET 动词是一个不号。
-
我在发布之前的评论时犯了一个错误。是的,有一个切换动作的新路径,它与我形成的请求验证无关。所以我将在新路由中使用 PUT 或 Patch。太感谢了。但最后一个问题是,在这种特定情况下(切换状态)Put 和 Patch 有区别吗?
-
请注意,我意识到您的问题已解决。最好检查已经给出的答案或发布问题的解决方案,以便其他人在将来发现它有帮助。然而,至于你的问题,PATCH 和 PUT 一直在争论,但是,在这种情况下,我宁愿说一致性比 正确性 更重要。 PUT 需要更新完整但已修改的对象,PATCH 需要更新对象的一部分。所以,由你来选择......见:google.com/search?q=patch+request&oq=patch+request
-
非常感谢您的指导。这很有帮助。实际上,因为我刚刚注册,所以我无法评价答案...
标签: laravel routes httprequest