Итак, я разрабатываю проект с использованием Laravel 5.7, и я хочу включить RESTful API, чтобы мобильная версия взаимодействовала с приложением и, конечно же, с самим веб-приложением.
Мой вопрос в том, что лучше всего использовать в таких случаях, когда дело доходит до маршрутизации и контроллеров, я прочитал некоторые предложения здесь и в других блогах и запутался, некоторые предложили мне объявить один файл маршрутизации для использования веб-приложением и API и добавляю идентификатор для например ("Интернет" и "мобильный"), и на его основе я возвращаю представление или данные JSON, другие предлагали разделить маршрутизацию (api и web), но указывать их на те же методы контроллера, что, по их мнению, лучше, чем первое предложение.
Ценю вашу помощь.
См. laravelbestpractices.com/#site-header и github.com/alexeymezenin/laravel-best-practices
Я использую подход модели Fat Model. Поместите всю реальную логику внутрь моделей, а контроллеры просто укажут на эти модели. Мне также нравится помещать все свои маршруты в файл API.php и использовать паспорт для аутентификации. Вы можете делать все в Интернете с помощью проверки токена CSRF, но мне просто нравится повышенная безопасность с помощью паспорта, и ее довольно легко настроить из коробки. Логика CRUD также остается в контроллере, просто проще и нет причин создавать для нее новую модель. Кроме того, читайте документацию и получайте удовольствие.
@Devon да, я знаю это и читал документы, но я запутался, когда увидел, что другие используют разные подходы, но в любом случае спасибо за ваш ответ.
@Egretos проверит это, спасибо.
@BradGoldsmith Я следовал этому подходу, я выполнил всю логику для веб и api в контроллерах и настроил файл маршрута API.php, но проблема, с которой я сталкиваюсь, заключается в использовании части веб-приложения, и я хочу, чтобы представление было вернул вместо объекта JSON, я попытался вернуть представление ("имя представления", компактный ("данные") и получил представление, но URL-адрес не изменился.

Laravel отделяет маршруты API от веб-маршрутов.
Веб-маршруты находятся в файле routes/web.php.
Маршруты API находятся в файле routes/api.php.
Что может раздражать, так это отделение логики части API от логики веб-части.
Здесь решение по-прежнему простое. Что я делаю, так это создаю папку, которую я вызываю API в app/Http/Controllers; все контроллеры, которые я помещаю в эту папку, находятся в пространстве имен App\Http\Controllers\API. В соответствующем файле маршрута все, что вам нужно сделать, это добавить флаг API\ перед именем контроллера.
Надеюсь, мой ответ поможет.
Спасибо !
да, это лучший подход, но возможно ли, чтобы маршруты API.php и WEB.php указывали на один и тот же метод в контроллере без ущерба для его функциональности.
Да, я с вами не согласен, но сложность будет заключаться в различии между API и веб-возвратами.
@alihussein Не должно быть причин указывать веб-маршрут и маршрут API на один и тот же метод. Если вы обнаружите, что делаете это, вы либо вкладываете слишком много логики в свои контроллеры, либо вам следует подумать об использовании собственного API вместо создания избыточных методов.
Laravel уже разделяет маршруты на веб-группы и группы API. Вы должны прочитать документацию, чтобы увидеть различия, Laravel хорошо документирован. Лучшие практики основаны на мнениях и не по теме для SO.