Mock模板解析拦截器
>s 在参数生成好以后,通过页面查看时,希望能看到每个参数的填写示例,但是示例又不能仅仅依据参数类型给随机数,所以便有了自定义模板配置和解析,在【参数实体拦截器配置中】可以配置自定义模板,本文介绍如何解析mock模板
[ApiExtra参数](doc:S3E9eryY)是拦截器解析依据的重要参数
```java
/**
* 接口文档配置
*/
@Configuration
public class EasyApiConfig extends DefaultConfigurationCreator {
@Override
public AllConfiguration replenish(AllConfiguration configuration) {
//拿到mock模板配置类,根据自身的规则定义文档生成规则
ReadMockTemplateConfig mockTemplateConfig = configuration.getReadMockTemplateConfig();
return super.replenish(configuration);
}
}
```
### Mock模板解析拦截器配置:**ReadMockTemplateConfig** ,具体可配置规则如下
**addReadMockTemplates** :`添加mock模板解析规则,参数中会给到自定义模板以及当前的参数类型`
```java
mockTemplateConfig.addReadMockTemplates((template, javaType) -> "123");
```
### 参数实体拦截器默认实现类
MockTemplateCommentReader :`根据默认规则解析模板`
### 默认mock模板语法
- 直接填写字符串,页面会显示填写的内容
- 通过@+方法名和参数使用内置语法,如 @randomName() 可以获取一个随机中文名字,@randomNumer(1, 10) 可以获取1-10的随机数
#### 支持的内置语法如下
@randomName() :`随机获取一个中文名字`
@randomCompany() :`随机获取一个公司名称`
@randomArea() :`随机获取一个区域`
@randomMobile() :`随机获取一个手机号码`
@randomImg() :`随机获取一张网络图片地址`
@randomVod() :`随机获取一个网络视频地址`
@randomEnumString(str) :`传入逗号分隔字符串,并随机返回一个字符串,如@randomEnumString('张三,李四')`
@randomEnumNumer(str) :`传入逗号分隔数字,并随机返回一个数字,如@randomEnumNumer('3,4,5')`
@time() :`获取当前时间戳`
@timeStr() :`获取当前时间字符串,yyyy-MM-dd HH:ss:mm格式`
@timeStr(pattern) :`获取当前时间字符串,传入格式`
@randomNumer(start,end) :`获取随机数字,传入最小值和最大值,如@randomNumer(10,100)`