swgger入门
目录
提示:以下是本篇文章正文内容,下面案例可供参考
一、swagger是什么?
swagger相当于一个标准规范,你可以按照它的规范去定义一个接口及接口相关的信息,再通过Swagger衍生出来一系列项目和工具,就可以做到生成各种格式的接口文档,生成多种语言的客户端和服务端的代码,以及在线接口调试页面等。spring框架引入swagger,将swagger规范纳入到自身的标准,建立spring-swagger项目,后面改成了现在的Springfox。项目通过引入Springfox,可以扫描相关的代码,生成该描述文件,进而生成与代码一致的接口文档和客户端代码。
swagger一般是使用在前后端分离的项目中,我们项目(课设)虽然是前后端一起做,但是也可以使用一下简单的接口测试,保证我们的前端调用后端接口得到的结果不会不一致!!
官网入口:swagger
二、使用
- swagger UI
- swagger2
springboot集成Swagger(基于maven)
步骤:
引入
- 新建一个spirngboot-web项目
- 导入jar依赖
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
-
简单编写一个Helloworld工程
-
配置Swagger(config包下)
@Configuration
@EnableSwagger2
public class SwaggerConfig(){
}
- 访问
http://localhost:8080/swagger-ui.html
配置信息
@Configuration
@EnableSwagger2
public class SwaggerConfig(){
//配置swagger的Docket的bean实例
@Bean
public Docket docket(){
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo());
}
//配置Sagger信息
private ApiInfo apiInfo() {
return new ApiInfo(
"borrowRoom",
"我的课室借用系统Swagger API文档",
"1.0",
"https://gdut2021.gitee.io/gdutyang/",
new Contact("borrowRoom", "https://gdut2021.gitee.io/gdutyang/", "2862751120@qq.com"),//作者信息
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList<VendorExtension>());
}
}
配置swagger扫描接口
@Bean
public Dockrt docket(){
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
//RequestHandlerSelectors,配置要扫描接口的方式
//basePagekage:指定扫描的包
//any():扫描全部
//none():不扫描
//withClassAnnotation:扫描类上的注释,参数是一个注释的反射对象
//withMethodAnnotation:扫描方法上的注解
.apis(PathSelectors.basePagekage("对应controller包"))
//path过滤什么路径
.paths(PahtSelectors.ant("/hler/**"))
.build();
}
不同环境下是否使用swagger
//配置Swagger的Docket的bean实例
@Bean
public Docket docket(Enviroment evironment){
//设置要提示的Swagger环境
Profiles profiles = Profiles.of("dev","test");
//通过envirnment.acceptsProfiles(profiles);判断是否处在自己设定的环境当中
boolean flag = environment.acceptsProfiles(profiles);
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.enable(flag)
.select()
.apis(RequestHandlerSelectors.basePageage("对应的controller包"))
.build();//.paths(PathSelectors.ant("/hler/**"))
}
配置多个API分组
.goupname(“name”)
@Bean
public Docket docket1(){
return new Docket(DocumentationType.SWAGGER_2).groupName("张三")
@Bean
public Docket docket2(){
return new Docket(DocumentationType.SWAGGER_2).groupName("李四")
}
总结
Swagger可以在springboot中配置自己负责的接口及相关的Swagger信息,还可以配置Swagger扫描的实体类等。