Конфликт в маршрутизации между Laravel Nova и Dingo API - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть сервер API Laravel, у которого есть только один веб-маршрут (тестовая страница), все остальное контролируется с помощью пакета 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 не работают.

В Postman, когда я делаю, GET /test (префикс /) работает, но Nova не работает, а когда я делаю /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         |          |            |
+------+----------+-----------------+------+-----------------------------------------------+-----------+------------+----------+------------+

1 Ответ

0 голосов
/ 13 ноября 2018

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

...