Я новичок в Laravel (4 и 5) и недавно работал над RESTful API. Чтобы разрешить несколько версий API, я использую URL-адрес для определения версии.
Кажется, что большинство людей следуют этому подходу: организовать разные версии контроллеров REST API в Laravel 4?
Структуры папок:
/app
/controllers
/Api
/v1
/UserController.php
/v2
/UserController.php
И в UserController.php
файлах я соответствующим образом устанавливаю пространство имен:
namespace Api\v1;
or
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-адрес будет просто http://..../api/v1
для версии 1 и http://..../api/v2
для версии 2. Это просто.
Мои вопросы:
Что делать, если я создаю незначительное обновление API, скажем, версии 1.1, как мне организовать структуру папок?
Моя мысль была следующей: должно ли это быть в порядке, поскольку точка является допустимым именем папок?
/app
/controllers
/Api
/v1
/UserController.php
/v1.1
/UserController.php
/v1.2
/UserController.php
/v2
/UserController.php
Кроме того, как написать пространство имен? Такого пространства имен нет.
namespace Api\v1.1;
Есть ли соглашение об именах, на которое я могу ссылаться при использовании точки?
Примечание. Я не хочу называть ее версией v2, потому что это не серьезное обновление.