可配置规则
支持的规则
基础配置
规则的 key | 规则目标(上下文 it) | 版本 | 规则描述 |
---|---|---|---|
folder.name | method | 1.1.11+ | 设置 api 所属文件夹 |
class.prefix.path | class | 1.1.11+ | 设置 API 请求前缀 |
ignore | class/method | 1.1.11+ | 忽略 API |
module | class | 1.1.11+ | 为 api 分组 |
API 配置
规则的 key | 规则目标(上下文 it) | 版本 | 规则描述 |
---|---|---|---|
api.name | method | 1.1.11+ | 设置 api 的名称 |
api.tags | method | 1.1.24+ | 设置 api 的标签 |
api.status | method | 1.1.24+ | 设置 api 的状态 |
method.description | method | 1.1.24+ | 方法(api)的额外注释 |
method.defaultContentType | - | 1.1.24+ | 用以设置 API 请求的 content-type |
method.default.http.method | method | 1.1.11+ | 设置默认的 api 的 HttpMethod |
method.request.replace | method | 1.1.29+ | 设置默认的 api 的入参命名转换 |
method.response.replace | method | 1.1.29+ | 设置默认的 api 的返回值命名转换 |
method.additional.header | method | 1.1.11+ | API 需要额外的 header, |
{name: "header name",value: "",desc: "",required:false, example:""} | |||
method.additional.param | method | 1.1.11+ | API 需要额外的参数 |
{name: "param name",value: "defaultValue",desc: "",required:false} | |||
☆method.return | method | 1.1.11+ | 设置返回值的类型 |
☆method.return.main | method | 1.1.11+ | 设置返回值的核心主体 |
☆method.return.body.type | method | 1.1.28+ | 设置返回值的返回类型 |
path.multi | - | 1.1.11+ | 设置返回值的核心主体 |
请求参数
规则的 key | 规则目标(上下文 it) | 版本 | 规则描述 |
---|---|---|---|
param.defaultValue | arg | 1.1.11+ | API 参数的默认值 |
param.description | arg | 1.1.11+ | 参数的额外注释 |
param.type | arg | 1.1.11+ | 用于设置 API 参数在 HTTP 请求中的类型 |
param.ignore | arg | 1.1.11+ | 忽略 API 参数 |
param.required | arg | 1.1.11+ | API 参数是否为必须(即不可为空) |
数据模型字段
规则的 key | 规则目标(上下文 it) | 版本 | 规则描述 |
---|---|---|---|
field.order | - | 1.1.27+ | 用以设置字段的排序 |
field.order.with | - | 1.1.27+ | 用以设置字段的排序,通过比较器 |
field.defaultValue | - | 1.1.11+ | 用以设置字段的默认值 |
field.example | - | 1.1.11+ | 用以设置字段的示例值 |
☆field.description | field | 1.1.11+ | 字段的额外注释 |
field.ignore | field | 1.1.11+ | 忽略字段(设置某些字段不出现在 json 中,或不需要请求时给出) |
☆field.mock | field | 1.1.11+ | 生成 mock 信息 |
field.mock.resolveProperty | - | 1.1.11+ | 用以开关是否解析field.mock 规则结果中的占位符 |
field.name | field | 1.1.11+ | 设置输出的字段名(用于 json 中字段名与类中字段名不一致) |
field.required | field | 1.1.11+ | 字段是否为必须(即不可为空) |
constant.field.ignore | field | 1.1.11+ | 忽略常量字段 |
field.schema.title | field | 1.1.27+ | 用以设置字段的数据模型的中文名 |
field.schema.min.length | field | 1.1.27+ | 用以设置字段的数据模型的最小长度 |
field.schema.max.length | field | 1.1.27+ | 用以设置字段的数据模型的最大长度 |
field.schema.format | field | 1.1.27+ | 用以设置字段的数据模型格式format |
field.schema.pattern | field | 1.1.27+ | 用以设置字段的数据正则表达式 |
field.schema.const | field | 1.1.27+ | 用以设置字段的数据模型常量 |
field.schema.read.only | field | 1.1.27+ | 数据模型作为请求参数时,该字段将被隐藏 |
field.schema.write.only | field | 1.1.27+ | 数据模型作为返回结构时,该字段将被隐藏 |
field.schema.permit.null | field | 1.1.29+ | 数据模型字段是否允许为 null,默认允许为 null |
枚举
规则的 key | 规则目标(上下文 it) | 版本 | 规则描述 |
---|---|---|---|
enum.use.custom | class | 1.1.11+ | 用于设置使用 @see 枚举类型时的默认取值字段, 优先级高于enum.use.by.type |
enum.use.by.type | class | 1.1.11+ | 用于设置使用 @see 枚举类型时的默认使用类型一致的字段, 优先级低于enum.use.custom |
enum.use.ordinal | class | 1.1.11+ | 用于设置使用 @see 枚举类型时的默认使用 ordinal 作为取值 |
enum.use.name | class | 1.1.11+ | 用于设置使用 @see 枚举类型时的默认使用 name 作为取值 |
JSON 配置
规则的 key | 规则目标(上下文 it) | 版本 | 规则描述 |
---|---|---|---|
☆json.rule.convert | - | 1.1.11+ | 用于设置某些类型转换为其他类型处理, 通常用于使用了 Spring 的自定义类型转换器的情况 |
json.rule.enum.convert | class | 1.1.11+ | 用于枚举类型的特殊转换 |
field | 1.1.11+ | 忽略字段(设置某些字段不出现在 json 中,或不需要请求时给出) 已废弃, 使用field.ignore代替 | |
field | 1.1.11+ | 设置输出的字段名(用于 json 中字段名与类中字段名不一致) | |
json.rule.class.description | field | 1.1.29+ | 设置数据模型的描述 |
methodDoc
规则的 key | 规则目标(上下文 it) | 版本 | 规则描述 |
---|---|---|---|
mdoc.class.filter | class | 1.1.11+ | 选择哪些类可以导出方法文档(rpc) |
mdoc.method.path | method | 1.1.11+ | 设置方法文档(rpc)的路径 |
mdoc.method.http.method | method | 1.1.11+ | 设置方法文档(rpc)HTTP 请求方式 |
支持的简单配置
规则的 key | 版本 | 配置类型 | 规则描述 | 示例 |
---|---|---|---|---|
dev | 1.1.11+ | bool | 启动开发模式,打印更详细的日志 | dev=true |
max.deep | 1.1.11+ | int | 解析json 时最大深度,默认 6 | max.deep=8 |
max.elements | 1.1.11+ | int | 解析json 时最大字段数,默认 256 | max.elements=512 |
json.cache.disable | 1.1.11+ | bool | 禁用json 解析缓存 | json.cache.disable=true |
http.timeOut | 1.1.11+ | int | http 请求的超时时间(s),优先级高于setting | http.timeOut=5 |
auto.format.url | 1.1.11+ | bool | 导入时是否格式化url ,确保url 以/ 开始,且将[a-zA-Z0-9-/_:.{}?=!]之外的字符替换为/ | auto.format.url=false |
field.mock.resolveProperty | 1.1.11+ | bool | 是否处理mock 信息中的占位符${xxx} | field.mock.resolveProperty=true |
api.tags.delimiter | 1.1.24+ | string | tags 的分割符, 默认为, | api.tags.delimiter=,# |
支持的回调
it
, 但可能会有附加的上下文供使用规则的 key | 规则目标(上下文 it) | 附加上下文 | 版本 | 规则描述 |
---|---|---|---|---|
api.class.parse.before | class | 无 | 1.1.11+ | 解析api 前回调 |
api.class.parse.after | class | 无 | 1.1.11+ | 解析api 后回调 |
api.method.parse.before | method | 无 | 1.1.11+ | 解析api 方法前回调 |
api.method.parse.after | method | 无 | 1.1.11+ | 解析api 方法后回调 |
api.param.parse.before | param | 无 | 1.1.11+ | 解析api 参数前回调 |
api.param.parse.after | param | 无 | 1.1.11+ | 解析api 参数后回调 |
export.after | method | api | 1.1.11+ | 每个 api 导出完成后回调 |
http.call.before | 无 | request | 1.1.11+ | http 请求前回调 |
http.call.after | 无 | request, response | 1.1.11+ | http 请求后回调 |
json.class.parse.before | class | 无 | 1.1.11+ | 解析类型前回调 |
json.class.parse.after | class | 无 | 1.1.11+ | 解析类型后回调 |
json.field.parse.before | field | 无 | 1.1.11+ | 解析类型字段前回调 |
json.field.parse.after | field | 无 | 1.1.11+ | 解析类型字段后回调 |
json.method.parse.before | method | 无 | 1.1.11+ | 解析类型方法 (getter/setter ) 前回调 |
json.method.parse.after | method | 无 | 1.1.11+ | 解析类型方法 (getter/setter ) 后回调 |
规则语法
简单规则
#fake
对应取的注释如下:
@org.springframework.web.bind.annotation.RequestMapping
@RequestMapping("path")
public class FakeClass{...}
@org.springframework.web.bind.annotation.RequestMapping#value
@RequestMapping(value = "path")
public class FakeClass{...}
api.status=done
高级脚本规则
JDK11
后js
引擎可能缺失, 故推荐使用groovy
作为首选groovy
规则为 groovy:groovyScript
js
规则为 js:jsScript
基础配置
folder.name
示例
# 使用 tag `folder` 设置接口所在目录
folder.name=#folder
用户相关
, 加上注释 @folder 一级目录/二级目录
后归属到一级目录/二级目录
,如果希望成为用户相关
的子目录,加上注释 @folder 用户相关/一级目录/二级目录
后归属到用户相关/一级目录/二级目录
多级目录使用斜杠/
分隔。其中\
和/
为特殊字符,需要转义,\/
表示字符/
,\\
表示字符\
。class.prefix.path
设置 API 请求前缀