美文网首页
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