Структура контроллера Laravel API?

Какая из них имеет структура контроллера для пользователя 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 приложении и управление версиями через пространство имен.