原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9959844.html
SpringBoot整合Swagger2
步骤
第一步:添加必要的依赖
    io.springfox
    springfox-swagger2
    2.7.0
    io.springfox
    springfox-swagger-ui
    2.7.0
第二步:添加必要的配置
一般无配置项,必要时可以添加自定义配置项,在配置类中读取
第三步:添加配置类(重点)
// swagger2的配置内容仅仅就是需要创建一个Docket实例
@Configuration
@EnableSwagger2 //启用swagger2
public class Swagger2Config {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .pathMapping("/")
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.springbootdemo"))
                .paths(PathSelectors.any())
                .build();
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("springboordemo")
                .description("Springboot整合Demo")
                .version("0.0.1")
                .build(); // 这部分信息其实可以自定义到配置文件中读取
    }
}
通过@Configuration注解,让Spring-boot来加载该类配置。再通过@EnableSwagger2注解来启用Swagger2Config。
再通过createRestApi方法创建Docket的Bean之后,
apiInfo方法用来创建该Api的基本信息(这些基本信息会展现在文档页面中)。
select() 函数返回一个 ApiSelectorBuilder 实例用来控制哪些接口暴露给Swagger2来展现。
一般采用指定扫描的包路径来定义
Swagger会扫描该包下所有Controller定义的API,并产生文档内容(除了被@ApiIgnore指定的请求)
第四步:在Controller和Bean上添加Swagger注解
@RestController
@RequestMapping("/user")
@Log4j2
@Api(description = "用户接口")
public class UserApi {
    @Autowired
    private UserService service;
    @ApiOperation(value = "添加用户", notes = "根据给定的用户信息添加一个新用户",response = ResponseEntity.class,httpMethod = "PATCH")
    @RequestMapping(value = "/addUser",method = RequestMethod.PATCH)
    public ResponseEntity
 addUser(final User user) {
        log.info("执行添加用户操作");
        return service.addUser(user);
    }
    @ApiOperation(value = "更新用户状态", notes = "根据给定的用户ID修改用户状态",response = ResponseEntity.class,httpMethod = "POST")
    @RequestMapping(value = "/updateUser", method = RequestMethod.POST)
    public ResponseEntity updateUser(final UseState useState, int useId) {
        log.info("执行修改用户状态操作");
        return service.updateUser(User.builder().useState(useState).useId(useId).build());
    }
    @ApiOperation(value = "更新用户手机号", notes = "根据给定的用户ID修改用户手机号",response = ResponseEntity.class,httpMethod = "POST")
    @RequestMapping(value = "/updateUsePhoneNum", method = RequestMethod.POST)
    public ResponseEntity updateUsePhoneNum(final String usePhoneNum, int useId) {
        log.info("执行修改用户手机号操作");
        return service.updateUsePhoneNum(User.builder().usePhoneNum(usePhoneNum).useId(useId).build());
    }
    @ApiOperation(value = "删除用户", notes = "根据给定的用户ID删除一个用户",response = ResponseEntity.class,httpMethod = "DELETE")
    @RequestMapping(value = "/deleteUser", method = RequestMethod.DELETE)
    public ResponseEntity deleteUser(final int useId) {
        log.info("执行删除用户操作");
        return service.deleteUser(useId);
    }
    @ApiOperation(value = "查询用户", notes = "根据给定的用户ID获取一个用户",response = ResponseEntity.class,httpMethod = "GET")
    @RequestMapping(value = "getUser", method = RequestMethod.GET)
    public ResponseEntity getUser(final int useId) {
        log.info("执行查询单个用户操作");
        return service.getUser(useId);
    }
    @ApiOperation(value = "查询用户", notes = "根据给定的用户信息查询用户",response = ResponseEntity.class,httpMethod = "POST")
    @RequestMapping(value = "getUsers", method = RequestMethod.POST)
    public ResponseEntity> getUsers(final User user) {
        log.info("根据条件查询用户");
        return service.getUsers(user);
    }
}
@ApiModel(value = "用户模型")
public class User {
    @ApiModelProperty("用户ID")
    private int useId;
    @ApiModelProperty("用户姓名")
    private String useName;
    @ApiModelProperty("用户性别")
    private UseSex useSex;
    @ApiModelProperty("用户年龄")
    private int useAge;
    @ApiModelProperty("用户身份证号")
    private String useIdNo;
    @ApiModelProperty("用户手机号")
    private String usePhoneNum;
    @ApiModelProperty("用户邮箱")
    private String useEmail;
    @ApiModelProperty("创建时间")
    private LocalDateTime createTime;
    @ApiModelProperty("修改时间")
    private LocalDateTime modifyTime;
    @ApiModelProperty("用户状态")
    private UseState useState;
}
第五步:启动应用,浏览器请求
http://localhost:8080/swagger-ui.html
可得到如下界面:https://www.cnblogs.com/V1haoge/p/9959844.html