如果是在5.2以前的版本,前面有提到route的定義都會在同一隻檔案 app/Http/routes.php
,因此當開發比較多api需要藉由group控管,範例就會像底下
Route::group(['prefix' => 'api'], function () {
Route::get('users', function () {
// 符合「/api/users」URL
});
Route::get('items', function () {
// 符合「/api/items」URL
});
});
基本上在5.3版拆出route資料夾以後,就可以依分類開成不同的檔案,例如可以拆成
route/comments.php, route/items.php
而其中可以在上面提到的 AppServiceProvider.php
做共同的管理,在裡面可以做namespace, middleware, 甚至是group的設定,能夠很輕鬆又很簡單的的把route做分類。
protected function mapApiRoutes()
{
Route::prefix('api')
->middleware('api')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
//如果group底下還想增加其他api可以這樣寫
/*
->group(function ($router) {
require base_path('routes/api.php');
require base_path('routes/items.php');
});
}
像上面group裡面的route都帶有api的prefix,實際戳的時候就會需要帶 {Host}/api/items/....
結論: laravel的route提供了很多彈性的方式去設定,要注意的是5.3 之前和之後對於route的寫法差異比較大,不過基本上要做的功能和分類是差不多的,而在5.3以後的分類因為拆開來,所以更易於維護。
參考連結:
laravel routing