20
我知道有一種方法可以爲路由創建REST API的版本化URL,但組織控制器和控制器文件的最佳方式是什麼?我希望能夠創建新版本的API,並且仍然保持舊版本運行至少一段時間。如何在Laravel 4中組織不同版本的REST API控制器?
我知道有一種方法可以爲路由創建REST API的版本化URL,但組織控制器和控制器文件的最佳方式是什麼?我希望能夠創建新版本的API,並且仍然保持舊版本運行至少一段時間。如何在Laravel 4中組織不同版本的REST API控制器?
我最終使用在應用/控制器命名空間和目錄:
/app
/controllers
/Api
/v1
/UserController.php
/v2
/UserController.php
而在UserController.php文件,我設置相應的命名空間:
namespace Api\v1;
或
namespace Api\v2;
然後在我的路線中,我做了這樣的事情:
Route::group(['prefix' => 'api/v1'], function() {
Route::get('user', 'Api\v1\[email protected]');
Route::get('user/{id}', 'Api\v1\[email protected]');
});
Route::group(['prefix' => 'api/v2'], function() {
Route::get('user', 'Api\v2\[email protected]');
Route::get('user/{id}', 'Api\v2\[email protected]');
});
我不是積極的,這是最好的解決方案。但是,它允許控制器的版本控制方式不會互相干擾。如果需要,你可以做一些與模型類似的驗證。
當我使用這種方法時,我必須使用完整路徑引用名稱空間外部的所有類(例如:\ Input,\ App) – 2014-05-05 00:24:58
您還可以添加'use App;'語句。這就是命名空間的工作原理。 – 2014-05-31 00:05:53
@ iah.vector - 版本有問題,只有控制器必須去v1或模型,工作,請求和...也必須去vesrion文件夾? – 2015-09-28 13:03:59