Я знаю, как создать URL-адреса для REST API с маршрутами, но лучший способ организовать контроллеры и файлы контроллеров? Я хочу, чтобы иметь возможность создавать новые версии API, и по-прежнему поддерживать старые, по крайней мере, в течение некоторого времени.
Как организовать различные версии REST API-контроллеров в Laravel 4?
Ответ 1
Я закончил использование пространств имен и каталогов в приложении/контроллерах:
/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]');
});
Я не уверен, что это лучшее решение. Тем не менее, он позволил управлять версиями контроллеров таким образом, чтобы они не мешали друг другу. Вероятно, вы могли бы что-то проверить аналогично с моделями, если это необходимо.