springboot整合swagger2,看这一篇就可以了

swagger2

swagger是个非常不错的接口文档工具,简单易用,方便后端开发人员和前端同学进行接口对接。文档直观,可操作。此处笔者介绍springboot整合swagger2。

添加依赖

  • swagger2 为核心依赖
  • swagger-ui 主要用于前端ui展示

 
     org.springframework.boot
     spring-boot-starter-web
 
 
 
 
     io.springfox
     springfox-swagger2
     2.9.2
 

 
     io.springfox
     springfox-swagger-ui
     2.9.2
 

配置类

  • 一定要注意增加@Configuration和@EnableSwagger2注解,前者作用:spring启动时注入配置类,后者作用是开启swagger2的配置。
  • .apis配置api文档路径,一定要正确,配置到controller路径。
  • apiInfo() 主要是api文档的信息介绍。
@Configuration
@EnableSwagger2
public class Swagger2Config {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                /**
                 * 配置swagger api包路径
                 */
                .apis(RequestHandlerSelectors.basePackage("com.hugo.talk.basic.controller"))
                .paths(PathSelectors.any())
                .build()
                .tags(new Tag("BasicController", "spring-all 基础模块"));
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder().title("spring-all API")
                .description("spring-all API reference for developers")
                .contact(new Contact("hugo0129", "https://github.com/hugo0129/spring-all", "[email protected]"))
                .version("1.0")
                .build();
    }

}

注解介绍

  • @Api(tags = "BasicController"):作用于controller类,用于标注controller类,tags是为不同的controller加上注释说明
  • @ApiOperation("get请求参数测试"):作用于方法,用于标注方法的作用。
  • @ApiModel("Person实体类"):作用于实体类,用于标注实体类的业务作用。
  • @ApiModelProperty("姓名"):作用于属性,用于标注属性的业务作用。
@Data
@ApiModel("Person实体类")
public class Person {
    @ApiModelProperty("姓名")
    private String name;

    @ApiModelProperty("姓名")
    private Integer age;

    @ApiModelProperty("性别:0-未知 1-男性 2-女性")
    private Integer sex;

    @ApiModelProperty("爱好")
    private String hobby;
}

运行效果

启动springboot项目,访问:localhost:8080/swagger-ui.html


swagger-ui效果

可以对每个方法进行测试,请求:


请求方法

响应:
响应结果

源代码

  • github地址

  • 后续会对springboot相关知识进行持续更新和分享。

你可能感兴趣的:(springboot整合swagger2,看这一篇就可以了)