[Laravel 5.3 新功能] 9. 路由相关修改
说明
此文章是 [Laravel 5.3 新功能] 系列的第九篇文章,路由相关修改。
[Laravel 5.3 新功能] 系列完整文章列表请见:分享:[Laravel 5.3 新功能] 系列文章
回顾 5.2 路由的修改
在 Laravel 5.2 的 routes.php 文件中,我们可以看到路由被分割成两个路由群组:web 和 api。
web 路由组提供了普通 web 应具有的所有功能:如 session、cookie、CSRF 等等。而 api 路由组更加轻量化,只提供了 throttle 中间件,以便提供无状态的 REST API。
5.3 路由的修改
在 5.3 中,app/Http/routes.php
文件被移到了 routes 目录下,并且被分割成两个文件:web.php和 api.php。你可能已经猜到了,web.php 中的路由应用了 web 中间件组,而 api.php 中的路由应用了api 中间件组。
这样做有很多好处:
- 我们实现了 web 路由和 api 路由的分离;
- 可以在应用级层面设置多个路由文件;
- 将 routes 移出 app 目录,对新手而言,可以更快访问到 routes 目录,并且让 app 目录完全成为PSR-4 自动加载的目录。
如果你想要自定义自己的独立路由文件,可参考 App\Providers\RouteServiceProvider
文件:
...
public function map()
{
$this->mapWebRoutes();
$this->mapApiRoutes();
//
}
protected function mapWebRoutes()
{
Route::group([
'namespace' => $this->namespace, 'middleware' => 'web',
], function ($router) {
require base_path('routes/web.php');
});
}
protected function mapApiRoutes()
{
Route::group([
'middleware' => ['api', 'auth:api'],
'namespace' => $this->namespace,
'prefix' => 'api',
], function ($router) {
require base_path('routes/api.php');
});
}
这样就可以非常简单的创建自己的路由文件了。
全文完。
链接
本帖已被设为精华帖!
本帖由系统于 8年前 自动加精
很合理的设计
美妙极了
这个好,还在想该如何分开 api 和 web 呢,这直接就是一个思路
赞
:punch: 铧哥, 顶一个!