栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

swagger2

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

swagger2

文章目录
  • swagger2
    • 简介
    • 使用
      • 导包
      • 编写配置类
      • 配置基本显示的信息
      • 配置扫描接口
      • 配置是否开启
      • 开发环境关闭,测试环境开启
      • 分组
      • 文档中的models
      • 给swagger-ui文档添加注释

swagger2

皆来自“狂神说Java”

swagger3有较大的变化
csdn-vip-详细版:https://blog.csdn.net/qq_15973399/article/details/107436089
免费-简易版:https://www.it610.com/article/1291227893636079616.htm

简介 使用

一个看源码的过程,源码里什么都有,缺什么补什么

导包

    io.springfox
    springfox-swagger2
    2.9.2




    io.springfox
    springfox-swagger-ui
    2.9.2

编写配置类
@Configuration
@EnableSwagger2 // 开启swagger2
public class SwaggerConfig {


}

测试

配置基本显示的信息
@Configuration
@EnableSwagger2 // 开启swagger2
public class SwaggerConfig {

    @Bean
    public Docket docket(){

        return new Docket(documentationType.SWAGGER_2)
                .apiInfo(
                        new ApiInfo(
                                "czc的Swagger日志", // 标题
                                "Api documentation", // 描述
                                "1.0",
                                "urn:tos", // 团队网站连接
                                // 作者信息
                                new Contact("czc", "http://localhost:8080", "1299973511@qq.com"),
                                "Apache 2.0",
                                "http://www.apache.org/licenses/LICENSE-2.0",
                                new ArrayList()
                        )
                );
    }
}

配置扫描接口

.select()
// select后一定要用build

// 指定要扫描的controller
// basePackage:指定扫描的包
// any: 扫描所有
// none: 不扫描
// withClassAnnotation: 扫描类上的注解,参数为 通过反射得到注解的类
// withMethodAnnotation: 扫描方法上的注解
.apis(RequestHandlerSelectors.basePackage(“com.czc.controller”))
// 过滤路径–PathSelectors
.paths(PathSelectors.ant("/czc"))
.build()

@Configuration
@EnableSwagger2 // 开启swagger2
public class SwaggerConfig {

    @Bean
    public Docket docket(){

        return new Docket(documentationType.SWAGGER_2)
                .apiInfo(
                        new ApiInfo(
                                "czc的Swagger日志", // 标题
                                "Api documentation", // 描述
                                "1.0",
                                "urn:tos", // 团队网站连接
                                // 作者信息
                                new Contact("czc", "http://localhost:8080", "1299973511@qq.com"),
                                "Apache 2.0",
                                "http://www.apache.org/licenses/LICENSE-2.0",
                                new ArrayList()
                        )
                )

                .select()
                // select后一定要用build
                
                // 指定要扫描的controller
                // basePackage:指定扫描的包
                // any: 扫描所有
                // none: 不扫描
                // withClassAnnotation: 扫描类上的注解,参数为 通过反射得到注解的类
                // withMethodAnnotation: 扫描方法上的注解
                .apis(RequestHandlerSelectors.basePackage("com.czc.controller"))
                // 过滤路径--PathSelectors
                .paths(PathSelectors.ant("/czc"))
                .build()
                ;
    }
}
配置是否开启

.enable(false) // 默认为true,即默认开启

开发环境关闭,测试环境开启

需要 Environment 参数 得到当前环境

    @Bean
    public Docket docket(Environment environment){

        // 通过Profiles类中的of方法得到其对象,传入需要判断的环境名
        // 注意包的路径 org.springframework.core.env.Profiles;
        Profiles profiles = Profiles.of("dev","test");

        // 监听判断当前环境,需要参数Profiles
        boolean flag = environment.acceptsProfiles(profiles);

application中选择环境
spring.profiles.active=dev

分组

.groupName(“czc”)

多个分组:在配置类中,注册多个Docket到bean中

 @Bean
 public Docket docket1(){
     return new Docket(documentationType.SWAGGER_2).groupName("aaa");
 }

 @Bean
 public Docket docket(Environment environment){
文档中的models

当controller中的方法返回值为一个实体类时,
就会被swagger扫描到,然后放到models中

    @GetMapping("/user1")
    public User user1(){
        return new User();
    }

给swagger-ui文档添加注释

@ApiModel() ---------------- 作用在实体类
@ApiModelProperty() --------------------- 作用在实体类的属性
@ApiOperation() -------------------- 作用在controller中的方法
@ApiParam() -------------------- 作用在方法中的参数

@ApiModel("用户类")
public class User {
    @ApiModelProperty("用户名")
    public String username;
    public String password;
}

=========================================================

@ApiOperation("这是user1方法")
@GetMapping("/user1")
public User user1(){
    return new User();
}

@GetMapping(value = "/user2")
public String user2(@ApiParam("参数")String username){
    return username;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/349398.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号