Laravel RESTful API 版本控制设计
我是Laravel(4和5)的新手,我最近一直在研究RESTful API。为了允许多个版本的API,我使用URL来确定版本。
似乎大多数人都遵循这种方法:如何在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\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');
});
该 URL 将仅用于版本 1 和版本 2。这很简单。http://..../api/v1
http://..../api/v2
我的问题是:
如果我正在构建API的次要升级,比如v1.1,我该如何组织我的文件夹结构?
我的想法如下,这应该仍然很好,因为点是文件夹的有效名称吗?
/app
/controllers
/Api
/v1
/UserController.php
/v1.1
/UserController.php
/v1.2
/UserController.php
/v2
/UserController.php
另外,我应该如何编写命名空间?没有这样的命名空间
namespace Api\v1.1;
有没有一个命名约定,我可以参考使用“点”?
注意:我不想将其称为版本v2,因为这不是重大升级。