接口拦截器配置

>s 接口扫描在本插件中是最重要的部分,一个接口包含了请求地址,请求方式,请求方法等多个重要元素,本文介绍如何自定义接口元素的读取 [ApiExtra参数](doc:S3E9eryY)是拦截器解析依据的重要参数 ```java /** * 接口文档配置 */ @Configuration public class EasyApiConfig extends DefaultConfigurationCreator { @Override public AllConfiguration replenish(AllConfiguration configuration) { //拿到接口配置类,根据自身的规则定义文档生成规则 ReadInterfaceConfig interfaceConfig = configuration.getReadInterfaceConfig(); return super.replenish(configuration); } } ``` ### 接口拦截器配置:**ReadInterfaceConfig** ,具体可配置规则如下 **addReadInterfaces** : `根据controller类读取接口规则,返回接口方法集合` ```java interfaceConfig.addReadInterfaces((controller, extra) -> Arrays.asList(controller.getMethods())); ``` --- **addReadBodyType** : `添加接口入参body体类型读取规则,这个参数设定好会影响ContentType` ```java interfaceConfig.addReadBodyType((method, extra) -> BodyType.FORM); ``` --- **addReadCustomSearch** : `添加接口自定义搜索标签,easypai会根据接口名、接口路径、拼音等形式提供快速搜索接口,本项配置不会影响默认搜索标签,是在默认的基础上进行追加` ```java interfaceConfig.addReadCustomSearch((method, extra) -> Collections.singletonList("快速搜索")); ``` --- **addReadDescription** : `添加接口描述的读取规则` ```java interfaceConfig.addReadDescription((method, extra) -> "这是一个特别的接口"); ``` --- **addReadIgnore** : `添加接口忽略规则,返回true则本接口不会被解析` ```java interfaceConfig.addReadIgnore((method, extra) -> false); ``` --- **addReadRenewTypes** : `添加接口更新策略,当扫描的接口已存在时,需要指定更新策略,包过替换覆盖、增量更新和跳过更新,默认增量更新` ```java interfaceConfig.addReadRenewTypes((method, extra) -> RenewType.overwrite); ``` --- **addReadRequestMethods** : `添加接口请求方法规则` ```java interfaceConfig.addReadRequestMethods((method, extra) -> RequestMethod.POST); ``` --- **addReadRequestUrls** : `添加接口访问路径规则` ```java interfaceConfig.addReadRequestUrls((method, extra) -> "/apis"); ``` --- **addReadShowNames** : `添加接口显示名称规则` ```java interfaceConfig.addReadShowNames((method, extra) -> method.getName()); ``` --- **addReadUniques** : `添加接口唯一标识规则,最好不要改变,系统会默认生成。唯一标识是在扫描接口判断是否相同的重要数据` ```java interfaceConfig.addReadUniques((method, extra) -> method.toGenericString()); ``` --- **addReadVerifyMockTags** :`添加接口mock时接口确认规则,在客户端请求mock时会携带接口标识或接口路径,配置本项可以对客户端传递的标识做验证,是不是要请求当前接口` ```java interfaceConfig.addReadVerifyMockTags((tag, entity) -> tag.equals(entity.getUnique())); ``` --- **addReadShows** :`添加当前接口是否显示规则,如果设置false,则本接口不显示在页面中,但会扫描并生成数据` ```java interfaceConfig.addReadShows((method, extra) -> true); ``` --- **addReadReqPackages** : `添加是否对请求参数进行包装规则,本参数是对高度封装的框架做处理,框架通常会使用拦截器将接口请求再次进行封装,通过设置本项来确定需不需要进行包装,具体包装设置请参照页面功能【参数包装】` ```java interfaceConfig.addReadReqPackages((method, extra) -> true); ``` --- **addReadResPackages** : `添加是否对响应参数进行包装规则,本参数是对高度封装的框架做处理,框架通常会使用拦截器将接口返回再次进行封装,通过设置本项来确定需不需要进行包装,具体包装设置请参照页面功能【参数包装】` ```java interfaceConfig.addReadResPackages((method, extra) -> true); ``` --- ### 接口拦截器默认实现类 InterfaceBodyTypeCommentReader : `根据spring规则确认请求体类型` InterfaceDescApiReader :`根据ApidocComment注解解析接口说明` InterfaceDescSwaggerReader :`根据swagger注解解析接口说明` InterfaceIgnoreApiReader :`根据ApidocComment注解解析忽略规则` InterfaceIgnoreSwaggerReader :`根据swagger注解解析忽略规则` InterfaceRequestMethodCommentReader :`根据spring规则解析请求方法` InterfaceRequestUrlCommentReader :`根据spring规则解析请求路径` InterfacesCommentReader :`根据RequestMapping相关注解扫描接口` InterfaceShowApiReader :`根据ApidocComment注解解析显示规则` InterfaceShowNameApiReader :`根据ApidocComment注解解析接口显示名称` InterfaceShowNameSwaggerReader :`根据swagger注解解析接口显示名称` InterfaceUniqueCommentReader :`解析接口唯一标识` InterfaceVerifyMockTagCommentReader :`解析mock接口确认规则,默认根据唯一标识或接口路径解析`