使用swagger的作用:
便于前后端对接,不用手动编写接口文档,省时省力,
第一添加依赖
第二添加配置扫描要生成文档的包
第三使用swagger注解用于页面展示描述功能
<!--生成文档swagger依赖-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.ArrayList;
import java.util.List;
/**
* swagger默认访问地址
* Springboot工程格式
* http://localhost:8080/swagger-ui.html
* 非Springboot工程格式(需加个项目名xxx)
* http://localhost:8080/xxx/swagger-ui.html
*
* */
@Configuration
@EnableSwagger2
@Profile({"dev"})//指定某个环境可用 这里表示开发环境可用
public class SwaggerConfig {
//swagger2的配置文件,这里可以配置swagger2的一些基本的内容,比如扫描的包等等
@Bean
public Docket createRestApi() {
// 设置全局header中的Authorization参数非必填,传空也可以,方便swagger测试
ParameterBuilder ticketPar = new ParameterBuilder();
List<Parameter> pars = new ArrayList<>();
ticketPar.name("Authorization")
.description("Authorization验证")
.modelRef(new ModelRef("string"))
.parameterType("header")
.required(false).build();
pars.add(ticketPar.build());
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
//扫描包路径
.apis(RequestHandlerSelectors.basePackage("com.staff.controller.web"))
.paths(PathSelectors.any())
.build()
.globalOperationParameters(pars);
}
//构建 api文档的详细信息函数,注意这里的注解引用的是哪个
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
//页面标题
.title("Spring cloud 脚手架使用 Swagger2 构建RESTful API")
//创建人
.contact("xiang")
//版本号
.version("1.0")
//描述
.description("api管理").build();
}
}
注解:
请参考:https://zhuanlan.zhihu.com/p/49996147