找不到Laravel API路由

时间:2019-03-08 03:02:25

标签: php laravel api vue.js laravel-5.8

我是API和Vue的新手。 我正在使用Laravel 5.8 api.php以及控制器和视图,并且只返回404 Not Found。

这是香港专业教育学院尝试过的

api.php

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

控制器

class DepartmentsController extends Controller
{     
   public function index()
  {
  return 'hey';
  }
}

路线列表

 GET|HEAD  | api/dashboard/departments                   | departments.index   | App\Http\Controllers\DepartmentsController@index                       | api,auth  

我尝试通过/127.0.0.1:8000/api/dashboard/departments/127.0.0.1:8000/dashboard/departments访问它,但两者均无法正常工作。

4 个答案:

答案 0 :(得分:1)

只需在api之前的网址中添加public。

{{1}}

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

我从我的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');

答案 3 :(得分:0)

请记住,在api.php中声明的路由将自动连接到/api前缀btw:

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