Какая из них имеет структура контроллера для пользователя api?
Отдельный контроллер для интерфейса и API для каждой версии api
/app/controllers/UsersController.php /app/controllers/api/v1/ApiUsersController.php
или
Отдельный контроллер для интерфейса и API и управление версиями в коде
/app/controllers/UsersController.php /app/controllers/api/ApiUsersController.php
или
Используйте один контроллер, обнаруживайте / api / call внутри маршрутизатора. Верните html / json в зависимости от URL-адреса.
/app/controllers/UsersController.php
Определенно первый вариант – лучший из трех, и причины – это масштабируемость и обслуживание .
Если вы используете только один контроллер, как предлагается в третьем методе, вы скоро закончите с грязным классом с тысячами строк. Мало того, что это не будет хорошо масштабироваться, но с вами будет сложно работать для вас и ваших товарищей по команде.
Второй выбор лучше, чем третий, но все же не самый лучший. Лучше использовать поддержку версий API с самого начала, и это упростит ваши маршруты, файлы и пространства имен.
Кстати, вместо того, чтобы называть его ApiUserController
вы также можете использовать UserController
, если вы правильно используете namespacing. Таким образом, вы могли бы иметь \UserController
и Api\V1\UserController
вместе.
Личное мнение. Я предпочитаю 1-й вариант. Все в 1 приложении и управление версиями через пространство имен.