Веб-маршруты предназначены для представлений внешнего интерфейса, где маршруты API будут использоваться для вызовов API. Вам определенно нужно разделить их, поскольку VueJS будет выполнять вызовы вашего API с помощью JSON и получать ответ JSON в ответ с кодами ошибок для обработки ваших ошибок. эффективно.
Веб-контроллер:
return view('blade_file')->with(compact('var1', 'var2'));
Если вы установите здесь коды ошибок, он покажет вам файл блейда для этого кода ошибки, например. 404 покажет вам файл представления блейда на ./resources/views/errors/404.blade.php
, но ваше приложение будет ожидать ответ JSON вместо ответа HTML.
Контроллер API:
return response()->json(compact('var1', 'var2'), 200); // success
return response()->json(['error' => 'bad request'], 400); // bad request
Если вы установите здесь коды ошибок, вы все равно получите ответ JSON, только с указанным кодом ошибки.
Вывод:
Разделите ваш веб-интерфейс и бэкэнд с API и веб-маршрутами, так как запросы / ответы обрабатываются по-разному.
Примечания:
- Не забудьте добавить свой токен CSRF в заголовок при выполнении запросов ajax / axios к этому API.
- Убедитесь, что ваше промежуточное программное обеспечение
api
. Если API разрешает только аутентифицированным пользователям, вам понадобится промежуточное программное обеспечение auth:api
и вам потребуется Laravel Passport .
- Не забудьте добавить пространство имен
Api
к вашим маршрутам API, либо в файле routes/api.php
, либо в app/Providers/RouteServiceProvider.php
.