我知道有一种方法可以为带有路由的 REST API 创建版本化 URL,但是组织控制器和控制器文件的最佳方法是什么?我希望能够创建新版本的 API,并且仍然让旧版本至少运行一段时间。
问问题
9184 次
1 回答
37
我最终在 app/controllers 下使用了命名空间和目录:
/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\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');
});
我不肯定这是最好的解决方案。但是,它允许以不相互干扰的方式对控制器进行版本控制。如果需要,您可能可以对模型进行类似的验证。
于 2013-05-14T01:53:57.143 回答