10

我是 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

7 回答 7

22

请记住,在中声明的路由api.php将自动添加/api前缀,例如:

Route::get('/hello', ...)
axios.get('/api/hello')
于 2019-11-01T16:05:32.337 回答
6

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

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

于 2019-03-08T13:23:32.393 回答
5

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

喜欢

/127.0.0.1:8000/public/api/dashboard/departments
于 2019-03-08T04:10:45.537 回答
4

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

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

于 2019-03-08T13:52:54.580 回答
-1

要运行 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

于 2021-10-27T06:38:30.033 回答
-2

赶紧跑

php artisan route:clear
于 2021-12-10T20:31:31.433 回答
-2

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

带有“application/json”值的标头“Accept”

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

于 2022-02-04T01:24:41.910 回答