邮递员和Laravel删除API

时间:2019-01-19 11:31:22

标签: laravel api postman

我正在尝试制作laravel api,获取请求一切正常,但是当我使用delete请求时,它显示了此信息 image

请帮助,我该怎么办。

这是在我的web.php中,

Route::delete('article/{id}','ArticleController@destroy');

在ArticleController中

public function destroy($id)
{
    $article=Article::FindOrFail($id);
    if($article->delete()){
        return new ArticleResources($article);
    }
}

2 个答案:

答案 0 :(得分:2)

API路由应放置在api.php中,而不是web.php

在web.php中放置API路由的问题是这些路由使用的Web中间件包括CSRF保护之类的东西。

您的邮递员图像并没有真正帮助,但是我可以看到您获得“页面已过期”标题,并且我认为问题是CSRF。

因此,解决此问题的最简单方法是将您的API路由放置在api.php中。
这里的路由以'api /'为前缀,因此在这种情况下,新的网址应类似于:

DELETE | http://127.0.0.1:8000/api/article/2

答案 1 :(得分:0)

除了@ joakim-lien答案之外,使用邮递员还将面临另一个问题。

  

HTML表单不支持PUT,PATCH或DELETE操作。所以,当   定义从HTML调用的PUT,PATCH或DELETE路由   表单,则需要向表单添加一个隐藏的_method字段。的   _method字段发送的值将用作HTTP请求   方法

来源:Form Method Spoofing - Laravel docs

这仅与HTML表单和Postman请求有关,因此,如果要发出DELETE请求,则需要进行POST请求,并将“ _method”字段添加为“ DELETE”

enter image description here