main.php 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <?php
  2. $params = array_merge(
  3. require __DIR__ . '/../../common/config/params.php',
  4. require __DIR__ . '/../../common/config/params-local.php',
  5. require __DIR__ . '/params.php',
  6. require __DIR__ . '/params-local.php',
  7. require __DIR__ . '/global-function-config.php'
  8. );
  9. return [
  10. 'id' => 'api',
  11. 'basePath' => dirname(__DIR__),
  12. 'controllerNamespace' => 'api\controllers',
  13. 'bootstrap' => ['log'],
  14. 'modules' => [
  15. 'v1' => [ // 版本1
  16. 'class' => 'api\modules\v1\Module',
  17. ],
  18. 'v2' => [ // 版本2
  19. 'class' => 'api\modules\v2\Module',
  20. ],
  21. 'user' => [ // 版本2
  22. 'class' => 'api\modules\user\Module',
  23. ],
  24. 'goods' => [ // 版本2
  25. 'class' => 'api\modules\goods\Module',
  26. ],
  27. 'order' => [ // order
  28. 'class' => 'api\modules\order\Module',
  29. ],
  30. ],
  31. 'components' => [
  32. 'request' => [
  33. 'csrfParam' => '_csrf-api',
  34. 'parsers' => [
  35. 'application/json' => 'yii\web\JsonParser',
  36. 'text/json' => 'yii\web\JsonParser',
  37. ]
  38. ],
  39. 'response' => [
  40. 'class' => 'yii\web\Response',
  41. 'as beforeSend' => 'api\behaviors\BeforeSend',
  42. ],
  43. 'user' => [
  44. 'identityClass' => 'common\models\api\AccessToken',
  45. 'enableAutoLogin' => true,
  46. 'enableSession' => false,// 显示一个HTTP 403 错误而不是跳转到登录界面
  47. 'loginUrl' => null,
  48. ],
  49. 'log' => [
  50. 'traceLevel' => YII_DEBUG ? 3 : 0,
  51. 'targets' => [
  52. [
  53. 'class' => 'yii\log\FileTarget',
  54. 'levels' => ['error', 'warning'],
  55. 'logFile' => '@runtime/logs/' . date('Y-m/d') . '.log',
  56. ],
  57. [
  58. 'class' => 'yii\log\FileTarget',
  59. 'levels' => ['info'],
  60. 'logVars' => [],
  61. 'logFile' => '@runtime/info/' . date('Y-m/d') . '.log',
  62. ],
  63. ],
  64. ],
  65. 'errorHandler' => [
  66. 'errorAction' => 'message/error',
  67. ],
  68. 'urlManager' => [
  69. 'class' => 'yii\web\UrlManager',
  70. // 美化Url,默认不启用。但实际使用中,特别是产品环境,一般都会启用。
  71. 'enablePrettyUrl' => true,
  72. // 是否启用严格解析,如启用严格解析,要求当前请求应至少匹配1个路由规则,
  73. // 否则认为是无效路由。
  74. // 这个选项仅在 enablePrettyUrl 启用后才有效。启用容易出错
  75. // 注意:如果不需要严格解析路由请直接删除或注释此行代码
  76. 'enableStrictParsing' => false,
  77. // 是否在URL中显示入口脚本。是对美化功能的进一步补充。
  78. 'showScriptName' => false,
  79. // 指定续接在URL后面的一个后缀,如 .html 之类的。仅在 enablePrettyUrl 启用时有效。
  80. 'suffix' => '',
  81. 'rules' => [
  82. [
  83. 'class' => 'yii\rest\UrlRule',
  84. 'controller' => [
  85. /**
  86. * 默认登录测试控制器(Post)
  87. * http://当前域名/api/v1/site/login
  88. */
  89. // 'sign-secret-key',
  90. // 版本1
  91. 'v1/default',// 默认测试入口
  92. 'v1/site',
  93. 'v1/mini-program',
  94. 'v1/pay',
  95. 'v1/common/provinces',
  96. 'v1/member/member',
  97. 'v1/member/address',
  98. 'v1/member/invoice',
  99. 'v1/member/auth',
  100. 'v1/member/bank-account',
  101. // 版本2
  102. 'v2/default', // 默认测试入口
  103. ],
  104. 'pluralize' => false, // 是否启用复数形式,注意index的复数indices,开启后不直观
  105. 'extraPatterns' => [
  106. 'POST login' => 'login', // 登录获取token
  107. 'POST logout' => 'logout', // 退出登录
  108. 'POST refresh' => 'refresh', // 重置token
  109. 'POST sms-code' => 'sms-code', // 获取验证码
  110. 'POST register' => 'register', // 注册
  111. 'POST up-pwd' => 'up-pwd', // 重置密码
  112. // 测试查询可删除 例如:http://www.rageframe.com/api/v1/default/search
  113. 'GET search' => 'search',
  114. 'GET qr-code' => 'qr-code', // 获取小程序码
  115. 'GET user-info' => 'user-info', // 获取用户信息
  116. ]
  117. ],
  118. [
  119. 'class' => 'yii\rest\UrlRule',
  120. 'controller' => ['v1/file'],
  121. 'pluralize' => false,
  122. 'extraPatterns' => [
  123. 'POST images' => 'images', // 图片上传
  124. 'POST videos' => 'videos', // 视频上传
  125. 'POST voices' => 'voices', // 语音上传
  126. 'POST files' => 'files', // 文件上传
  127. 'POST base64' => 'base64', // base64上传
  128. 'POST merge' => 'merge', // 合并分片
  129. 'POST verify-md5' => 'verify-md5', // md5文件校验
  130. 'GET oss-accredit' => 'oss-accredit', // oss js 直传配置
  131. ],
  132. ],
  133. [
  134. 'class' => 'api\rest\UrlRule',
  135. 'controller' => ['addons'],
  136. 'pluralize' => false,
  137. ],
  138. 'notify/wechat-transfer/<appKey:\w+>' => 'notify/wechat-transfer',
  139. ]
  140. ],
  141. ],
  142. 'as cors' => [
  143. 'class' => \yii\filters\Cors::class,
  144. ],
  145. 'params' => $params,
  146. ];