'app-api', 'basePath' => dirname(__DIR__), 'bootstrap' => [ 'log', //全局内容协商 [ //ContentNegotiator 类可以分析request的header然后指派所需的响应格式给客户端,不需要我们人工指定 'class' => 'yii\filters\ContentNegotiator', 'formats' => [ 'application/json' => yii\web\Response::FORMAT_JSON, 'application/xml' => yii\web\Response::FORMAT_XML, //api 端目前只需要json 和 xml //还可以增加 yii\web\Response 类内置的响应格式,或者自己增加响应格式 ], ] ], 'defaultRoute' => 'main/index',//默认控制器 'controllerNamespace' => 'api\controllers', //api 分模块 -- shizhongqi 'modules' => [ // controllers 目录下的路由配置 'version_1' => [ 'class' => 'api\controllers\v1\Module', 'defaultRoute' => 'index', ], /** * modules 目录下的路由配置 * 这里我们用Module实现版本v1和v2 */ 'v1' => [ 'class' => 'api\modules\v1\Module', 'defaultRoute' => 'index', ], 'v2' => [ 'class' => 'api\modules\v2\Module', 'defaultRoute' => 'index' ], ], // 'components' => [ 'jwt' => [ 'class' => 'api\components\Jwt', ], 'user' => [ 'identityClass' => 'common\models\xhAdmin', 'enableAutoLogin' => true, 'identityCookie' => [ 'name' => 'backendUser', // unique for backend ], 'loginUrl' => ['main/login'], ], 'log' => [ 'traceLevel' => YII_DEBUG ? 3 : 0, 'targets' => [ [ 'class' => 'yii\log\FileTarget', 'levels' => ['error', 'warning'], ], ], ], //新增,不理解有什么用处,后期了解下 -- shizhonqi 'response' => [ 'class' => 'yii\web\Response', //设置 api 返回格式,错误码不在 header 里实现,而是放到 body里 'as resBeforeSend' => [ 'class' => 'api\components\ResBeforeSendBehavior', 'defaultCode' => 500, 'defaultMsg' => 'error', ], //ps:components 中绑定事件,可以用两种方法 //'on eventName' => $eventHandler, //'as behaviorName' => $behaviorConfig, //参考 http://www.yiiframework.com/doc-2.0/guide-concept-configurations.html#configuration-format ], //变动 -- shizhonqi //TODO 路由规则验证中 'urlManager' => [ 'enablePrettyUrl' => true, // 注意:如果不需要严格解析路由请直接删除或注释此行代码 // 'enableStrictParsing' => true, // 是否在URL中显示入口脚本。是对美化功能的进一步补充。 'showScriptName' => false, //路由不正确也能正常运行 -- ??? 'rules' => [ /*[ 'class' => 'yii\rest\UrlRule', 'controller' => ['main'], // 由于 resetful 风格规定 URL 保持格式一致并且始终使用复数形式 // 所以如果你的 controller 是单数的名称比如 UserController // 设置 pluralize 为 true (默认为 true)的话,url 地址必须是 users 才可访问 // 如果 pluralize 设置为 false, url 地址必须是 user 也可访问 // 如果你的 controller 本身是复数名称 UsersController ,此参数没用,url 地址必须是 users 'pluralize' => false, //是否启用复数形式,注意index的复数indices,我认为开启后不直观 ],*/ '/'=>'/', [ 'class' => 'yii\rest\UrlRule', 'controller' => ['user'], 'pluralize' => false, //设置为false 就可以去掉复数形式了*/ 'extraPatterns'=>[ 'GET test'=>'test' ], ], // controllers 目录 '//search'=>'//search', [ 'class' => 'yii\rest\UrlRule', 'controller' => ['version_1/user'], // 默认路由 'defaultRoute' => 'index', 'pluralize' => false, ], // modules 目录 //当然,如果自带的路由无法满足需求,可以自己增加规则 'GET //search' => '//search', [ 'class' => 'yii\rest\UrlRule', 'controller' => ['v1/user'], // 默认路由 'defaultRoute' => 'index', 'pluralize' => false, ], ], ], ], 'params' => $params, ] ;