配置参数
# 配置参数
# title
- 类型: string
- 默认值: APi接口文档
页面的标题,显示在左上角与封面页
# desc
- 类型: string
文档说明,文档封面处显示
# copyright
- 类型: string
- 默认值: Powered By HG
页面的版权申明,显示在封面页
# default_method
- 类型: string
- 默认值: GET
默认的请求类型,编写接口注解时,不配置Method参数时,为该配置的默认类型
# default_author
- 类型: string
- 默认值: GET
默认的作者名称,编写接口注解时,不配置Author时,为该配置的默认作者
# apps
- 类型: array
- 默认值: undefined
- 支持版本:>=2.1.0
多应用/多版本管理配置
注意
修改了该配置,必须去掉页面url?(问号)后面的所有参数,重新访问
// config/apidoc.php
'apps' => [
['title'=>'后台管理','path'=>'app\admin\controller','folder'=>'admin'],
[
'title'=>'演示示例',
'path'=>'app\demo\controller',
'folder'=>'demo',
'items'=>[
['title'=>'V1.0','path'=>'app\demo\controller\v1','folder'=>'v1'],
['title'=>'V2.0','path'=>'app\demo\controller\v2','folder'=>'v2']
]
],
],
2
3
4
5
6
7
8
9
10
11
12
13
14
apps配置数组的参数说明
参数名 | 类型 | 说明 |
---|---|---|
title | string | 应用/版本的名称 |
path | string | 应用/版本的目录(控制器命名空间) |
folder | string | 应用/版本的文件夹名称 |
password | string | 应用/版本的访问密码 |
items | array | 多层应用/版本配置 |
# groups
- 类型: array
- 默认值: undefined
设置控制器分组
// config/apidoc.php
<?php
return [
//设置控制器分组
'groups'=>[
['title'=>'基础模块','name'=>'base'],
['title'=>'示例模块','name'=>'demo'],
],
]
2
3
4
5
6
7
8
9
# definitions
- 类型: string
- 默认值: app\common\controller\Definitions
指定公共注释定义的控制器地址
# controllers
- 类型: array
- 默认值: undefined
列出需要生成接口文档的控制器,如不配置则自动根据 apps
配置的path自动生成
// config/apidoc.php
<?php
return [
//生成文档的控制器
'controllers' => [
'app\\api\\controller\\ApiTest',
'app\\api\\controller\\User',
...
],
]
2
3
4
5
6
7
8
9
10
# filter_controllers
- 类型: array
- 默认值: undefined
不配置controllers
时有效,在自动生成控制器列表时配置不解析的控制器
// config/apidoc.php
<?php
return [
//生成文档的控制器
'controllers' => [
'app\\api\\controller\\ApiTest',
'app\\api\\controller\\User',
...
],
]
2
3
4
5
6
7
8
9
10
# cache
- 类型: array
缓存配置,开启后需手动更新接口参数,关闭则每次刷新重新生成接口数据
# cache.enable
- 类型: boolean
- 默认值:false
是否开启缓存
# cache.path
- 类型: string
- 默认值:'../runtime/apidoc/'
缓存文件路径
# cache.max
- 类型: number
- 默认值:5
最大缓存数量
# auth
- 类型: array
进入接口问页面的权限认证配置
# auth.enable
- 类型: boolean
- 默认值:false
是否启用权限认证,启用则需登录
# auth.password
- 类型: string
- 默认值:123456
进入接口文档页面的登录密码
# auth.secret_key
- 类型: string
- 默认值:apidoc#hg_code
密码加密的盐,请务必更改
# headers
- 类型: array
- 默认值: undefined
- 支持版本:>=2.4.0
全局请求头参数,配置后,所有接口请求头参数都统一加上这些参数,如接口单独定义了将会覆盖配置中的全局参数
// config/apidoc.php
// 全局的请求头参数
'headers'=>[
['name'=>'token','type'=>'string','require'=>true,'desc'=>'登录票据'],
['name'=>'shopid','type'=>'int','desc'=>'店铺id'],
],
2
3
4
5
6
7
# parameters
- 类型: array
- 默认值: undefined
- 支持版本:>=2.4.0
全局请求参数,配置后,所有接口请求参数都统一加上这些参数,如接口单独定义了将会覆盖配置中的全局参数
// config/apidoc.php
// 全局的请求参数
'parameters'=>[
['name'=>'code','type'=>'string','desc'=>'全局code'],
],
2
3
4
5
6
# responses
- 类型: string/object/array
- 默认值: 如下示例
统一的请求响应体,当配置为字符串时,只在接口详情页面响应结果Responses
右侧的问号处做展示用
// config/apidoc.php
'responses'=>[
['name'=>'code','desc'=>'状态码','type'=>'int'],
['name'=>'message','desc'=>'操作描述','type'=>'string'],
['name'=>'data','desc'=>'业务数据','main'=>true,'type'=>'object'],
],
2
3
4
5
6
7
8
# controller_auto_search
- 类型: boolean
- 默认值: false
是否将多级路由的url生成为/形式。tp5用户可直接在config/app.php中配置,由于tp6废除了该配置,所以该配置是为了方便tp6用户进行配置
# allowCrossDomain
- 类型: boolean
- 默认值: false
适用于TP6,是否允许跨域访问apidoc的相关接口,TP5自行修改手动添加的路由即可
# auto_url_rule
- 类型: string
- 默认值: undefined
自动生成url的规则,可选值有 lcfirst
首字母小写,ucfirst
首字母大写
# docs
- 类型: array
- 默认值: undefined
Markdown文档配置
# docs.menu_title
- 类型: string
- 默认值: 开发文档
文档菜单主标题
# docs.menus
- 类型: array
- 默认值: undefined
生成Markdown文档菜单的配置
menu数组参数
参数名 | 说明 |
---|---|
title | 文档标题 |
path | md文件地址,可使用 ${app[N].folder} 做应用/版本区分,具体用法见path可用变量说明 |
// config/apidoc.php
<?php
return [
// markdown 文档
'docs' => [
'menu_title' => '开发文档',
'menus' => [
['title'=>'md语法示例','path'=>'docs/Use'],
[
'title'=>'HTTP响应编码',
'items'=>[
['title'=>'status错误码说明','path'=>'docs/${app[0].folder}/HttpStatus'],
['title'=>'code错误码说明','path'=>'docs/${app[0].folder}/HttpCode_${app[1].folder}'],
],
]
]
]
]
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# path可用变量说明
变量写法${app[N].folder}
其中的N
表示apps
中配置的层级:
比如配置为如下
'apps' => [
['title'=>'后台管理','path'=>'app\admin\controller','folder'=>'admin'],
[
'title'=>'演示示例',
'path'=>'app\demo\controller',
'folder'=>'demo',
'items'=>[
['title'=>'V1.0','path'=>'app\demo\controller\v1','folder'=>'v1'],
['title'=>'V2.0','path'=>'app\demo\controller\v2','folder'=>'v2']
]
],
],
'docs'=>[
'menu_title' => '开发文档',
'menus' => [
['title'=>'Http状态码','path'=>'docs/${app[0].folder}/HttpCode_${app[1].folder}'],
]
]
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1、当应用/版本选为后台管理
的应用时,此时${app[0].folder}
就等于admin
由于该应用配置无子级items
此时的${app[1].folder}
也就为空。最终文件地址为dosc/admin/HttpCode_.md
。
2、当应用/版本选为演示示例-V1.0
时,此时${app[0].folder}
就等于demo
由于该应用配置存在子级(多个版本)items
此时的${app[1].folder}
也就为v1
。最终文件地址为dosc/admin/HttpCode_v1.txt
。
# crud
- 类型: object
- 默认值: undefined
- 支持版本:>=2.1.0
可视化一键生成Crud的配置
# crud.controller 的参数
参数名 | 类型 | 说明 |
---|---|---|
path | string | 生成控制器文件到此目录,可使用${app[N].folder} 变量指定当前选中的apps 配置中的参数,具体可查看说明 |
template | string | 生成控制器的模板文件地址。../ 为项目根目录;模板文件必须为.txt ;可使用${app[N].folder} 变量指定当前选中的apps 配置中的参数,具体可查看path、template可用变量说明 |
# crud.route 的参数
参数名 | 类型 | 说明 |
---|---|---|
path | string | 生成路由到此文件,注意:这里指定的是路由文件,不是目录 |
template | string | 生成路由的模板文件地址。同crud.contreller.template参数 |
# crud.model 的参数
参数名 | 类型 | 说明 |
---|---|---|
path | string | 生成模型文件到此目录 |
template | string | 模型生成的模板地址。同crud.contreller.template参数 |
default_fields | array | 创建数据表窗口,默认填入的字段方便快速填写,具体可参考下方示例 |
fields_types | array | 创建数据表窗口,可选的字段类型 |
file_name | string | 文件名生成规则,支持模板参数如:${model.class_name}Model |
# crud.validate 的参数
参数名 | 类型 | 说明 |
---|---|---|
path | string | 生成验证器文件到此目录 |
template | string | 验证器生成的模板地址。同crud.contreller.template参数 |
rules | array | 可选的验证规则 |
# crud.validate.rules的参数
参数名 | 类型 | 说明 |
---|---|---|
name | string | 验证规则的名称 |
rule | string | 验证规则。具体可查阅TP文档TP6验证规则 (opens new window) |
message | array/string | 提示文本,可使用${变量名} 来获取当前字段的参数,可配置的参数同crud.model.default_fields 数组对象中的参数 |
# crud[自定义] 的参数
参数名 | 类型 | 说明 |
---|---|---|
path | string | 生成自定义文件到此目录 |
template | string | 自定义生成的模板地址。同crud.contreller.template参数 |
# path、template可用变量说明
变量写法${app[N].folder}
其中的N
表示apps
中配置的层级:
比如配置为如下
'apps' => [
['title'=>'后台管理','path'=>'app\admin\controller','folder'=>'admin'],
[
'title'=>'演示示例',
'path'=>'app\demo\controller',
'folder'=>'demo',
'items'=>[
['title'=>'V1.0','path'=>'app\demo\controller\v1','folder'=>'v1'],
['title'=>'V2.0','path'=>'app\demo\controller\v2','folder'=>'v2']
]
],
],
'crud'=>[
// 生成控制器配置
'controller'=>[
'path'=>'app\${app[0].folder}\controller\${app[1].folder}',
'template'=>'../template/${app[0].folder}/controller',
],
// ...
]
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1、当创建Crud时所选为后台管理
的应用时,此时${app[0].folder}
就等于admin
由于该应用配置无子级items
此时的${app[1].folder}
也就为空。最终将采用template/admin/controller.txt
的模板文件来生成的controller文件目录为 app\admin\controller
。
2、当创建Crud时所选为演示示例-V1.0
的应用/版本时,此时${app[0].folder}
就等于demo
由于该应用配置存在子级(多个版本)items
此时的${app[1].folder}
也就为v1
。最终将采用template/demo/controller.txt
的模板文件来生成的controller文件目录为 app\demo\controller\v1
。
# crud配置示例
'crud'=>[
// 生成控制器配置
'controller'=>[
'path'=>'app\${app[0].folder}\controller\${app[1].folder}',
'template'=>'../template/controller',
],
// 自定义的文件生成配置,你也可以像这样添加更多配置项,来生成你所需的文件
'service'=>[
'path'=>'app\${app[0].folder}\services',
'template'=>'../template/service',
],
// 生成模型配置
'model'=>[
'path'=>'app\model',
'template'=>'../template/model',
'default_fields'=>[
[
'field'=> 'id',
'desc'=> '唯一id',
'type'=> 'int',
'length'=> 11,
'default'=> '',
'not_null'=> true,
'main_key'=> true,
'incremental'=> true,
'validate'=>'',
'query'=> false,
'list'=> true,
'detail'=> true,
'add'=> false,
'edit'=> true
],
],
'fields_types'=>[
"int",
"tinyint",
"float",
"decimal",
"char",
"varchar",
"text",
"point",
]
],
// 生成验证器文件配置
'validate'=>[
'path'=>'app\${app[0].folder}\validate',
'template'=>'../template/validate',
'rules'=>[
['name'=>'必填','rule'=>'require','message'=>'缺少必要参数${field}'],
['name'=>'数字','rule'=>'number','message'=>['${field}字段类型为数字']],
['name'=>'年龄','rule'=>'number|between:1,120','message'=>['${field}.number'=>'${field}${desc}字段类型为数字','${field}.between'=>'${field}只能在1-120之间']]
]
],
// 生成路由
'route'=>[
'path'=>'${app[0].folder}\route\${app[0].folder}.php',
'template'=>'../template/route_${app[0].folder}',
]
]
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63