Подтвердить что ты не робот

Как организовать различные версии REST API-контроллеров в Laravel 4?

Я знаю, как создать URL-адреса для REST API с маршрутами, но лучший способ организовать контроллеры и файлы контроллеров? Я хочу, чтобы иметь возможность создавать новые версии API, и по-прежнему поддерживать старые, по крайней мере, в течение некоторого времени.

4b9b3361

Ответ 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]');
});

Я не уверен, что это лучшее решение. Тем не менее, он позволил управлять версиями контроллеров таким образом, чтобы они не мешали друг другу. Вероятно, вы могли бы что-то проверить аналогично с моделями, если это необходимо.