美文网首页
Laravel api.php 内定义的路由会自动加上 /api

Laravel api.php 内定义的路由会自动加上 /api

作者: PHP的点滴 | 来源:发表于2020-05-13 13:18 被阅读0次

现象

在 routes/api.php 中配置

Route::any('test', function (){
    return 'test';
});

访问 http://xxx.com/test 路由无效

原因分析

主要是因为定义在 \App\Providers\RouteServiceProvider

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

给 api.php 的路由都上了 /api 前缀。
而 middleware 是定义在 \App\Http\Kernel 中的 $middlewareGroups

    protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            \Illuminate\Session\Middleware\AuthenticateSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            //\App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],

        'api' => [
            'bindings',
        ],
    ];

相关文章

网友评论

      本文标题:Laravel api.php 内定义的路由会自动加上 /api

      本文链接:https://www.haomeiwen.com/subject/epsoectx.html