Неверный маршрут: невозможно разрешить запрос. Yii2 Rest - PullRequest
0 голосов
/ 26 ноября 2018

Я настраиваю Yii2 Rest приложение API.

Это моя структура каталогов API:

api
├── index.php
├── components
├── config
│   ├── api.php
│   ├── bootstrap.php
│   ├── params.php
│   └── routes.php
├── modules
│   └── v1
│       ├── Module.php
│       └── modules
│           ├── auth
│           │   └── controllers
│           │       └── MainController.php
│           └── Module.php
├── runtime
└── traits

api.php :

...
'urlManager' => [
    'class' => 'yii\web\UrlManager',
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => [
        [
            'class' => 'yii\rest\UrlRule',
            'controller' => [
                'v1/auth/main'
            ],
            'extraPatterns' => [
                'POST v1/login' => 'login' // For MainController in Auth module
            ]
        ],
    ]
],
...
'modules' => [
    'v1' => [
        'class' => 'app\api\modules\v1\Module',
        // Sub modules for v1 module
        'modules' => [
            'auth' => [
                'class' => 'app\api\modules\v1\modules\auth\Module',
            ],
        ],
    ],
],
...

Что я получаю в почтальоне, когда пытаюсь сделать POST запрос к http://my.api/v1/login:

{
    "name": "Not Found",
    "message": "Page not found.",
    "code": 0,
    "status": 404,
    "type": "yii\\web\\NotFoundHttpException",
    "previous": {
        "name": "Invalid Route",
        "message": "Unable to resolve the request \"v1/login\".",
        "code": 0,
        "type": "yii\\base\\InvalidRouteException"
    }
}

Я знаю, что могу справиться с этой ситуацией, как показано ниже, но это не то, что я хочу:

'urlManager' => [
    'class' => 'yii\web\UrlManager',
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => [
        'POST v1/login' => 'v1/auth/main/login'
    ]
],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...