控制器拦截器配置

>s easyapi生成的接口文档总共分为两层,上层单位是控制器,下层单位是接口, 控制器的默认扫描规则是通过**spring ioc**拿到全部的**controller**类,本文讲解如何打破默认规则,自己定义控制器扫描方案。 [ApiExtra参数](doc:S3E9eryY)是拦截器解析依据的重要参数 ```java /** * 接口文档配置 */ @Configuration public class EasyApiConfig extends DefaultConfigurationCreator { @Override public AllConfiguration replenish(AllConfiguration configuration) { //拿到控制器配置类,根据自身的规则定义文档生成规则 ReadControllerConfig controllerConfig = configuration.getReadControllerConfig(); return super.replenish(configuration); } } ``` ### 控制器拦截器配置:**ReadControllerConfig** ,具体可配置规则如下 **addReadController** : `添加控制器扫描规则,返回需要被当作控制器的class类集合,默认通过IOC容器中获取Controller标识的Bean.传入ReadControllers接口实现类,接口为函数式接口,可使用 lambda 表达式快速编写实现` ```java controllerConfig.addReadController(springContext -> Arrays.asList(UserController.class)); ``` --- **addReadAuthor** : `添加控制器作者读取规则,传入ReadControllerAuthor接口实现类,接口为函数式接口,可使用 lambda 表达式快速编写实现` ```java controllerConfig.addReadAuthor((controller, extra) -> controller.getName()); ``` --- **addReadDescription** : `添加控制器说明读取规则,传入ReadControllerDescription接口实现类,接口为函数式接口,可使用 lambda 表达式快速编写实现` ```java controllerConfig.addReadDescription((controller, extra) -> extra.getControllerComment().getComment()); ``` --- **addReadIgnore** :`添加控制器忽略规则,传入ReadControllerIgnore接口实现类,接口为函数式接口,可使用 lambda 表达式快速编写实现` ```java controllerConfig.addReadIgnore ((controller, extra) -> true); ``` --- **addReadRequestPath** :`添加控制器统一请求路径读取规则,传入ReadControllerRequestPath接口实现类,接口为函数式接口,可使用 lambda 表达式快速编写实现` ```java controllerConfig.addReadRequestPath ((controller, extra) -> ""); ``` --- **addReadShow** : `添加控制器是否显示规则,假如有时候不想展示相关控制器,但又不想删除历史的测试数据等,可以使用本拦截器来控制不显示。传入ReadControllerShow接口实现类,接口为函数式接口,可使用 lambda 表达式快速编写实现` ```java controllerConfig.addReadShow((controller, extra) -> false); ``` --- **addReadShowName** : `添加控制器在页面中显示的名称,传入ReadControllerShowName接口实现类,接口为函数式接口,可使用 lambda 表达式快速编写实现` ```java controllerConfig.addReadShowName((controller, extra) -> controller.getName()); ``` --- ### 控制器拦截器默认实现类 ControllerAuthorApiReader : `使用ApidocComment注解读取控制器作者` ControllerAuthorCommentReader : `使用源码读取控制器作者` ControllerAuthorSwaggerReader:`使用swagger注解读取控制器作者` ControllerDescApiReader :`使用ApidocComment读取控制器说明` ControllerDescCommentReader :`使用源码读取控制器说明` ControllerDescSwaggerReader :`使用swagger注解读取控制器说明` ControllerIgnoreApiReader :`使用ApidocComment读取忽略规则` ControllerIgnoreCommentReader :`使用源码读取忽略规则` ControllerIgnoreSwaggerReader :`使用swagger注解读取忽略规则` ControllerShowNameApiReader:`使用ApidocComment读取显示名称` ControllerShowNameCommentReader :`使用源码读取显示名称` ControllerShowNameSwaggerReader :`使用swagger注解读取显示名称`