Laravel中的HTTP请求

康纳·毕晓普

在Laravel中,我们使用路由来处理来自浏览器的HTTP请求。

我们可以将请求路由到控制器,执行一些逻辑,然后返回响应。

现在,我们可以发送用花括号封装的变量,{}并且响应可以是任何东西,因此在我看来,通过控制器进行路由意味着丢失了不同请求方法(POST,GET,PUT等)的属性。

例如,我可以发送带有URI的POST请求,example/{id}然后将其放入routes.php文件中

Route::post('example/{id}','SomeController@SomeAction');

然后,我可以使用变量在控制器中执行某些操作$id并发送响应。

另一方面,我可以发送带有URI的GET请求example/{id}并将我的路线更改为

Route::get('example/{id}','SomeController@SomeAction');

控制器将给出相同的响应。

因此,我认为使用哪种请求方法并不重要吗?

乔纳森

在第二遍阅读中,我可以识别出您的问题的两个部分:

请求方法不会丢失。您可以使用访问它们$request->getMethod()因此GET请求将返回GET您还可以使用该方法isMethod('GET'),该方法可用于获取真实值,该值使您可以根据请求类型返回不同类型的响应。

关于设置URL的方式,如果要创建REST风格的Web服务,那么使用什么HTTP动词就很重要。

我不会解释什么是REST-ful Web服务(您可以查找它),这是您的示例中的几点:

如果要输入get一些数据,则应该发出GET请求。它是表示从资源中读取的动词。如果必须发送大量数据-而您的意图是添加数据,则应改为发送数据POST

URI应该以最能描述您要处理的资源的方式有意义。

您可以将HTTP动词与HTTP谓词一起推断出隐含的动作。因此,如果您POST要使用example/1,我可能会推断(实际上是个题外话)您正在尝试从示例资源中更新记录1。实际上,您可能会使用PUT动词(用于处理更新)。

在后台,由于浏览器的限制,Laravel使用POST请求,但将其视为服务器端的PUT请求。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章