She*_*zod 20 php laravel laravel-4
我知道有一种方法可以为带有路由的REST API创建版本化URL,但是组织控制器和控制器文件的最佳方法是什么?我希望能够创建新版本的API,并且仍然保持旧版本的API运行至少一段时间.
小智 37
我最终在app/controllers下使用名称空间和目录:
/app
/controllers
/Api
/v1
/UserController.php
/v2
/UserController.php
Run Code Online (Sandbox Code Playgroud)
在UserController.php文件中,我相应地设置了命名空间:
namespace Api\v1;
Run Code Online (Sandbox Code Playgroud)
要么
namespace Api\v2;
Run Code Online (Sandbox Code Playgroud)
然后在我的路线中我做了这样的事情:
Route::group(['prefix' => 'api/v1'], function () {
Route::get('user', 'Api\v1\UserController@index');
Route::get('user/{id}', 'Api\v1\UserController@show');
});
Route::group(['prefix' => 'api/v2'], function () {
Route::get('user', 'Api\v2\UserController@index');
Route::get('user/{id}', 'Api\v2\UserController@show');
});
Run Code Online (Sandbox Code Playgroud)
我不肯定这是最好的解决方案.但是,它允许控制器的版本化,使它们不会相互干扰.如果需要,您可以做一些与模型类似的验证.