繁体   English   中英

"未找到 Laravel API 路由"

[英]Laravel API Routes Not Found

我是 API 和 Vue 的新手。 我正在研究 Laravel 5.8 api.php 和控制器和视图,它只返回 404 Not Found。

这是我试过的

api.php<\/strong>

 Route::group(['middleware' => 'api'], function(){
    Route::resource('/dashboard/departments', 'DepartmentsController');
 });

请记住,在api.php声明的api.php将自动连接到/api前缀,顺便说一句:

Route::get('/hello', ...)
axios.get('/api/hello')

您的 API 路由位于需要 API 类型身份验证的api中间件中。 如果您查看API 身份验证文档,您需要设置 API 令牌并随请求传入。

您需要将令牌与您的请求一起传递,删除api中间件并让您的 API 路由未经身份验证,或者将您需要通过浏览器访问的路由移出api中间件并移入web中间件和路由文件。

对于任何仍然想知道的人,或者只是我。 这是我经过多次试验后所做的。

我从我的 API.php 中删除了 route::group,从 RouteServiceProvider.php 中删除了前缀('api')并用中间件('web')替换它

这是我的RouteServiceProvider.php文件

protected function mapApiRoutes()
{
    Route::middleware('api')
        ->middleware('web')
        ->namespace($this->namespace)
        ->group(base_path('routes/api.php'));
}

这是我的api.php文件

Route::resource('/dashboard/departments', 'DepartmentsController');

只需在 api 之前在 url 中添加 public 。

喜欢

/127.0.0.1:8000/public/api/dashboard/departments

要运行 laravel 项目“用你的主机替换主机”:

php artisan serve --host 10.11.222.33 --port 8000

或者也可以这样

php artisan serve --host 127.0.0.1 --port 8000

然后调用 API

http://10.11.222.33:8000/api/departments

赶紧跑

php artisan route:clear

如果您使用的是 REST 客户端(Imsomnia、Postman),则需要检查您是否接受 JSON 响应。 在名为“Accept”和“application\/json”的请求中放置一个标头作为值。

带有“application\/json”值的标头“Accept”<\/a>

如果请求的路由具有验证(并且您没有发送标头),您的响应将是根页面(如果您在 routes\/web.php 中没有路由,则返回 404 错误)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM