rest - 无效路由:无法解析请求 Yii2 Rest
问题描述
我正在配置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'
]
],
解决方案
推荐阅读
- python - 根据字典在 csv 中搜索单词
- .net - 尝试在 Azure 管道 PATH ISSUE 上部署 SQL DB
- sql-server - 在sql的列中找出不包含特定值的字段
- javascript - 我想从数据库中获取图像路径并将其显示在反应组件中,我正在使用 require(),(错误:找不到模块)发生?
- javascript - 向下滚动时动画元素
- c# - 使用 Selenium C# 在私有模式下的 IE
- python - 如何在美丽的汤和python中指定css选择器?
- c# - 在 IAuthenticationService.SignInSync 之后无法立即读取身份声明
- machine-learning - 当 CPU 仅在 pytorch 中可用时,如何并行化训练循环样本?
- opencv - 模糊圆圈检测