【Laravel】web.php 和 api.php 之间的区别是什么?

关于Laravel的路由文件

Laravel的路由文件分为两种类型:web.php和api.php。

关于路由文件的差异

web.php -> 网页.php yè.php)

通常情况下,我们会在浏览器接收到HTTP请求后,设置路由以将其显示在屏幕上。
由于启用了CSRF保护等功能,因此无法从外部进行POST请求。

api.php 可直译为 “应用程序接口.php”。

在接收外部的HTTP请求时,可以设置路由(端点)来返回值。
由于CSRF保护未启用,外部可以进行POST操作。

关于动作的差异

在Laravel 6中,web.php和api.php的行为差异是由app/Http/Kernel.php文件中的设置确定的。

api.php中没有包含VerifyCsrfToken。

   /**
     * The application's route middleware groups.
     *
     * @var array
     */
    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' => [
            'throttle:60,1',
            'bindings',
        ],
    ];

总结

    • Laravelではルーティングを設定するためのファイルが2種類ある

 

    • web.phpは画面表示する際のルーティングファイル

 

    api.phpのルーティングは外部からのアクセス用のルーティングファイル
广告
将在 10 秒后关闭
bannerAds