Конфликт в маршрутизации между Laravel Nova и Dingo API

У меня есть сервер Laravel API, у которого есть только один веб-маршрут (тестовая страница), все остальное контролируется через dingo/api пакет и все работает правильно.

В config/api.php Я поставил 'prefix' => env('API_PREFIX', '/') так как это всего лишь сервер API.

С тех пор я установил Laravel Nova и продолжал получать сообщения об ошибках JSON на /nova маршрут: No hint path defined for [nova],

В конце концов я понял, что мне нужно изменить префикс на 'prefix' => env('API_PREFIX', '/api'), Теперь Nova работает правильно, но мои маршруты API не работают.

В Почтальоне, когда я делаю GET /test (префикс /) работает, но Нова нет, и когда я делаю /api/test/ (префикс /api), Nova работает, но я получаю ошибку при возврате API:

{
"message": "",
"exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
"file": "/home/vagrant/Code/guest-api/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php",
"line": 179,
"trace": [
{
"file": "/home/vagrant/Code/guest-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 633,
"function": "match",
"class": "Illuminate\\Routing\\RouteCollection",
"type": "->"},
{
"file": "/home/vagrant/Code/guest-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 622,
"function": "findRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"},
...
]
}

Без сообщения об ошибке я не вижу, что не так? Кроме того, когда я делаю php artisan api:routes Я получаю правильный маршрут обратно:

+------+----------+-----------------+------+-----------------------------------------------+-----------+------------+----------+------------+
| Host | Method   | URI             | Name | Action                                        | Protected | Version(s) | Scope(s) | Rate Limit |
+------+----------+-----------------+------+-----------------------------------------------+-----------+------------+----------+------------+
|      | GET|HEAD | /something/test |      | App\Http\Controllers\Auth\AuthController@test | No        | v1         |          |            |
+------+----------+-----------------+------+-----------------------------------------------+-----------+------------+----------+------------+

0

Решение

Вместо добавления /api в качестве резервного параметра, вы должны добавить префикс к вашему .env файл как: API_PREFIX=api как описано Вот

1

Другие решения

У меня есть сервер Laravel API, у которого есть только один веб-маршрут (тестовая страница), все остальное контролируется с помощью dingo/api пакет и все работает правильно.

В config/api.php Я поставил 'prefix' => env('API_PREFIX', '/') так как это всего лишь сервер API.

С тех пор я установил Laravel Nova и продолжал получать сообщения об ошибках JSON на /nova маршрут: No hint path defined for [nova],

В конце концов я понял, что мне нужно изменить префикс на 'prefix' => env('API_PREFIX', '/api'), Теперь Nova работает правильно, но мои маршруты API не работают.

В Почтальоне, когда я делаю GET /test (префикс /) работает, но Нова нет, и когда я делаю /api/test/ (префикс /api), Nova работает, но я получаю ошибку при возврате API:

{
"message": "",
"exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
"file": "/home/vagrant/Code/guest-api/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php",
"line": 179,
"trace": [
{
"file": "/home/vagrant/Code/guest-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 633,
"function": "match",
"class": "Illuminate\\Routing\\RouteCollection",
"type": "->"},
{
"file": "/home/vagrant/Code/guest-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 622,
"function": "findRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"},
...
]
}

Без сообщения об ошибке я не вижу, что не так? Кроме того, когда я делаю php artisan api:routes Я получаю правильный маршрут обратно:

+------+----------+-----------------+------+-----------------------------------------------+-----------+------------+----------+------------+
| Host | Method   | URI             | Name | Action                                        | Protected | Version(s) | Scope(s) | Rate Limit |
+------+----------+-----------------+------+-----------------------------------------------+-----------+------------+----------+------------+
|      | GET|HEAD | /something/test |      | App\Http\Controllers\Auth\AuthController@test | No        | v1         |          |            |
+------+----------+-----------------+------+-----------------------------------------------+-----------+------------+----------+------------+
0

Вместо добавления /api в качестве резервного параметра, вы должны добавить префикс к вашему .env файл как: API_PREFIX=api как описано Вот

active «data-shortcut =» A
самый старый «data-shortcut =» O
голосует «data-shortcut =» V
1
По вопросам рекламы [email protected]