• SpringBoot集成Swagger2.x版本


    SpringBoot集成Swagger2.x版本

    一、pom文件导入依赖

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.9.2</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.9.2</version>
    </dependency>

    二、编写SwaggerConfig文件

    注:要注意@Configuration注解,不写@Configuration注解Spring就管理不到该对象

    import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import springfox.documentation.builders.ApiInfoBuilder;
    import springfox.documentation.builders.PathSelectors;
    import springfox.documentation.builders.RequestHandlerSelectors;
    import springfox.documentation.service.ApiInfo;
    import springfox.documentation.spi.DocumentationType;
    import springfox.documentation.spring.web.plugins.Docket;
    import springfox.documentation.swagger2.annotations.EnableSwagger2;
    
    @EnableSwagger2
    @Configuration
    @ConditionalOnProperty(prefix = "swagger", value = {"enable"}, havingValue = "true")
    public class SwaggerConfig {
        @Bean
        public Docket createRestApi() {
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("com"))//扫描com路径下的api文档
                    .paths(PathSelectors.any())//路径判断
                    .build();
        }
    
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    .title("demo")//标题
                    .description("demoAPI接口文档")//描述
                    .version("0.0.0")//版本号
                    .build();
        }使用注解

    Swagger常用注解

    1. @Api
      1. 功能:描述controller类
      2. 注解位置:类
      3. 常用注解属性
        1. tags = "" // 描述此controller类
      4. @ApiOperation
        1. 功能:描述一个方法或者一个API接口
        2. 注解位置:方法
        3. 常用注解属性
          1. value = "" // 描述方法
          2. notes = "" // 描述方法详细信息
      5. @ApiImplicitParam
        1. 功能:描述方法或接口参数
        2. 注解位置: 方法
        3. 注解属性
          1. name = "" // 方法或接口的形参, 注意要与方法的参数名称相同
          2. value = "" // 对参数的描述
          3. paramType = "" // 参数传递方式,此属性的可选值 ["header", "query", "path", "body", "form"]
            1. header,使用@RequestHeader获取的参数
            2. query,使用@RequestParam获取的参数,常用于GET请求
            3. path,使用@PathVariable获取的参数
            4. body,使用@RequestBody获取的参数,常用于POST请求,对象参数
          4. dataType = "" // 参数类型,例如 string, int, ArrayList, POJO类
      6. @ApiImplicitParams
        1. 功能:汇集多个参数
        2. 注解位置: 方法
        3. 注解属性
          1. @ApiImplicitParam组成的列表

    欢迎关注作者公众号

  • 相关阅读:
    Idea中资源文件的设置和Java中类的权限
    Springboot中slf4j+log4j2的使用
    linux下修改文件查看样式(日期/文件大小)
    maven项目中引入外部jar
    01背包问题
    python爬取千千音乐
    【DataBase】SQL优化案例:其一
    【Uni-App】底部栏踩坑
    【Uni-App】UniApp转微信小程序发布应用
    【Uni-App】API笔记 P2
  • 原文地址:https://www.cnblogs.com/zhanqing/p/swagger2.html
Copyright © 2020-2023  润新知