swagger 是我一直在用的在线API 的生成文档 ,我一直觉得 非常的好用 省事
来吧 上代码
pom.xml
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version></dependency>
Swagger2
package com.wsm.compose.compose_base.config;
import com.google.common.base.Function;
import com.google.common.base.Optional;
import com.google.common.base.Predicate;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.RequestHandler;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
-
@name: Swagger2
-
@Author: wangshimin
-
@Date: 2019-08-13 14:38
-
@Description:
*/
@Slf4j
@Configuration
@EnableSwagger2
public class Swagger2 {
@Value(" {swagger.base-package}")
private String swaggerBasePackage;public Swagger2() {
log.info("》》》》》》》》》》swagger2框架启动");
}/**
- 创建API应用
- api() 增加API相关信息
- 通过select()函数返回一个ApiSelectorBuilder实例,用来控制哪些接口暴露给Swagger来展现,
- 本例采用指定扫描的包路径来定义指定要建立API的目录。
- @return
*/
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(basePackage(swaggerBasePackage))
.paths(PathSelectors.any())
.build();
}
/**
- 构建 api文档的详细信息函数
- @return
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title(“compose 测试 APIs”)
.description(“compose api接口文档”)
.version(“1.0”)
.build();
}
public static Predicate basePackage(final String basePackage) {
return input -> declaringClass(input).transform(handlerPackage(basePackage)).or(true);
}//配置扫描多个地址
private static Function<Class<?>, Boolean> handlerPackage(final String basePackage) {
return input -> {
// 循环判断匹配
for (String strPackage : basePackage.split(";")) {
boolean isMatch = input.getPackage().getName().startsWith(strPackage);
if (isMatch) {
return true;
}
}
return false;
};
}private static Optional<? extends Class<?>> declaringClass(RequestHandler input) {
return Optional.fromNullable(input.declaringClass());
}
}
yml添加配置
在项目中添加注解
这个就很简单了
完事
http://localhost:8080/swagger-ui.html
就是这么简单