接口入参拦截器

>s 每个接口的传入参数有可能不同,有些参数需要被解析,有些参数需要被转换,有些需要被忽略,比如HttpServletRequest等,easyapi是将所有的接口入参先进行扫描,如果是对象类型,再转交【参数实体拦截器】进行处理,本文介绍如何自定义解析接口入参 [ApiExtra参数](doc:S3E9eryY)是拦截器解析依据的重要参数 ```java /** * 接口文档配置 */ @Configuration public class EasyApiConfig extends DefaultConfigurationCreator { @Override public AllConfiguration replenish(AllConfiguration configuration) { //拿到接口入参配置类,根据自身的规则定义文档生成规则 ReadRequestConfig requestConfig = configuration.getReadRequestConfig(); return super.replenish(configuration); } } ``` ### 接口入参配置 :ReadRequestConfig,具体可配置规则如下 **addReadParams** :`添加读取接口参数规则` ```java requestConfig.addReadParams((method, extra) -> new ArrayList<>()); ``` --- **addReadName** :`添加参数名称读取规则` ```java requestConfig.addReadName((parameter, parameterName, extra) -> parameterName); ``` --- **addReadType** :`添加参数类型读取规则` ```java requestConfig.addReadType((parameter, extra) -> parameter.getParameterizedType()); ``` --- **addReadRequired** :`添加参数必填规则` ```java requestConfig.addReadRequired((parameter, extra) -> true); ``` --- **addReadShow** :`添加参数是否显示规则` ```java requestConfig.addReadShow((parameter, extra) -> true); ``` --- **addReadIgnore** :`添加参数是否忽略规则` ```java requestConfig.addReadIgnore((parameter, extra) -> false); ``` --- **addReadDescriptions** :`添加参数说明规则` ```java requestConfig.addReadDescriptions((parameter, extra) -> ""); ``` --- **addReadMockTemplate** :`添加参数mock模板规则,本规则会影响mock结果以及请求页面参数自动填充,easyapi提供了一些规则,可以查看`[【Mock模板解析拦截器】](doc:PamFJrQh)`包过随机字符,当前时间,随机数字等,也可以自定义规则,然后通过添加mock解析拦截器来处理` ```java requestConfig.addReadMockTemplate((parameter, extra) -> "@randomNum()"); ``` --- ### 接口入参拦截器默认实现类 RequestDescriptionApiReader :`根据ApidocComment注解读取参数说明` RequestDescriptionSwaggerReader :`根据swagger注解读取参数说明` RequestDescriptionCommentReader :`根据注释读取参数说明` RequestMockTemplateCommentReader :`默认生成模板策略`