1.引入依赖
maven仓库:https://mvnrepository.com/artifact/io.springfox/springfox-boot-starter
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
2、集成swagger
package com.example.config;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.oas.annotations.EnableOpenApi;
@Configuration
//@EnableSwagger2 //swagger2 注解
@EnableOpenApi //swagger3 新增注解
public class SwaggerConfig {
}
3.配置swagger
@Bean
public Docket docket(Environment environment) {
//设置要显示swagger的环境
Profiles of = Profiles.of("dev", "test");
//判断当前是否处于该环境
boolean b = environment.acceptsProfiles(of);
return new Docket(DocumentationType.OAS_30)
.apiInfo(apiInfo())
.enable(b)
.groupName("group") // 配置分组
//是否启用swagger
.select() //通过select()方法去配置扫描接口,RequestHandlerSelectors配置如何扫描接口
//basePackage根据包路径扫描接口
.apis(RequestHandlerSelectors.basePackage("com.example.controller"))
//.paths(PathSelectors.ant("/v1/**")) //通过paths()方法设置如何过滤
.build();
}
//配置多个分组
@Bean
public Docket docket1() {
return new Docket(DocumentationType.OAS_30).groupName("group1");
}
@Bean
public Docket docket2() {
return new Docket(DocumentationType.OAS_30).groupName("group2");
}
//配置文档信息
private ApiInfo apiInfo() {
Contact contact = new Contact("联系人", "联系人连接", "联系人邮件@qq.com");
return new ApiInfo("Swagger学习",
"演示如何配置swagger",
"v1.0",
"组织连接",
contact,
"Apache 2.0 许可",
"许可连接",
new ArrayList()
);
}
4.创建用户实体类
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ApiModel //只要实体在请求接口的返回值上(即使是泛型),都能映射到实体项中,该注解只是起解释作用
public class User {
@ApiModelProperty("用户名")
public String username;
@ApiModelProperty("密码")
public String password;
}
5.修改controller
package com.example.controller;
import com.example.pojo.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(tags = "模块说明")
@RestController
public class HelloController {
@ApiOperation("接口说明")
@GetMapping("/hello")
public String hello(@ApiParam("用户名") String username) {
return username;
}
@ApiOperation("登录")
@GetMapping("/getUser")
public User getUser() {
return new User();
}
}
6.文档页面地址
http://localhost:8080/swagger-ui/index.html
以上。