引入包:
<!--swagger--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> <exclusions> <exclusion> <groupId>io.swagger</groupId> <artifactId>swagger-annotations</artifactId> </exclusion> <exclusion> <groupId>io.swagger</groupId> <artifactId>swagger-models</artifactId> </exclusion> </exclusions> </dependency> <!--解决进入swagger页面报类型转换错误,排除2.9.2中的引用,手动增加1.5.21版本--> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-annotations</artifactId> <version>1.5.21</version> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-models</artifactId> <version>1.5.21</version> </dependency> <!-- swagger2 增强UI ,拥有好看的界面, 和接口分组,排序等功能,如不引用可自行删除--> <!-- https://mvnrepository.com/artifact/com.github.xiaoymin/knife4j-spring-boot-starter --> <!-- https://doc.xiaominfo.com/--> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>2.0.4</version> </dependency>
swagger配置并启用:
springfox.documentation.service.* java.util.*"dev" SwaggerConfig Logger log = LoggerFactory.getLogger(
"deprecation" ApiInfoBuilder().title("接口文档""服务端通用接口").version("1.0"
List<ApiKey><ApiKey> apiKeyList = ArrayList<ApiKey> ApiKey("Authorization", "Authorization", "header" List<SecurityContext><SecurityContext> securityContexts = ArrayList<>"^(?!auth).*$" List<SecurityReference>= AuthorizationScope("global", "accessEverything"= AuthorizationScope[10] =<SecurityReference> securityReferences = ArrayList<> SecurityReference("Authorization"
List<ResponseMessage><ResponseMessage> responseMessageList = ArrayList<>
responseMessageList.add( ResponseMessageBuilder().code(200).message("响应成功" ResponseMessageBuilder().code(500).message("服务器内部错误"
List<Map<String, Object>>
Class<Enum> clazz = (Class<Enum><Map<String, Object>> list = ArrayList<Map<String, Object>>
Enum[] enumConstants =
Method getCode = clazz.getMethod("getCode"= clazz.getMethod("getMessage"<String, Object> map = = HashMap<String, Object>
map.put("code""message" ->
(method.isAnnotatedWith(ApiVersion.= method.getHandlerMethod().getMethodAnnotation(ApiVersion. (apiVersion.value() !=
ApiVersion annotationOnClass = method.getHandlerMethod().getBeanType().getAnnotation(ApiVersion. (annotationOnClass != (annotationOnClass.value() != if (method.groupName().equals("token-controller")) return true;return false; }) .paths(PathSelectors.any()) .build().securitySchemes(securitySchemes()).securityContexts(securityContexts());
afterPropertiesSet() Class<CustomVersion> clazz = CustomVersion.= AutowireCapableBeanFactory autowireCapableBeanFactory = (autowireCapableBeanFactory = AbstractBeanDefinition beanDefinition ="buildDocket", "swaggerConfig"
自定义注解实API版本控制:
ApiVersion.class
/**
* API版本控制注解
* Created on 2019/4/18 11:17.
*
* @author caogu */@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mappingpublic @interface ApiVersion {// //标识版本号// int value() default 1;
/**
* 分组名(即版本号),可以传入多个
*
* @return
*/
String value() default "v1";
}
自定义一个API版本号控制类
/**
* 版本管理接口 */public interface CustomVersion {
String VERSION_1 = "v1";
String VERSION_2 = "v2";
}补个美美的效果图

评论区