【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のルーティングは外部からのアクセス用のルーティングファイル