Linfinity

Never say never.
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Swagger

Posted on 2021-01-29 21:04  Linfinity  阅读(88)  评论(0编辑  收藏  举报

1、Swagger能干什么

通过Swagger衍生出来的一系列项目和工具,就可以做到生成各种格式的接口文档,生成多种语言的客户端和服务端的代码,以及在线接口调试页面等等。这样,如果按照新的开发模式,在开发新版本或者迭代版本的时候,只需要更新Swagger描述文件,就可以自动生成接口文档和客户端服务端代码,做到调用端代码、服务端代码以及接口文档的一致性。

2、Springboot集成Swagger

2.1使用步骤

1、创建springboot-web工程

2、添加依赖

    <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>

3、添加配置类


@Configuration
@EnableSwagger2 //启用Swagger
public class SwaggerConfig {

    @Bean
    public Docket docket(){
        return new Docket(DocumentationType.SWAGGER_2)
                //配置Swagger信息
                .apiInfo(apiInfo())
                //配置是否启动Swagger,默认为true不需要配置
                .enable(true)
                //配置扫描范围
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.linfinity.swagger.web"))
                .build();
    }

    //配置Swagger描述信息
    private ApiInfo apiInfo(){
        //作者信息
        Contact contact = new Contact("Linfinity", "https://www.cnblogs.com/dominik/", "ljl1056@gmail.com");

        return new ApiInfo(
                "Linfinity的API帮助文档",   //Swager帮助文档标题
                "我的剑就是你的剑",     //个人描述
                "v1.0",                 //版本号
                "https://www.cnblogs.com/dominik/",  //关于你团队的网站
                contact,
                "Apache 2.0",   //开源版本号
                "http://www.apache.org/licenses/LINCENSES-2.0",
                new ArrayList()
        );
    }
}

4、测试访问

http://localhost:8080/swagger-ui.html

 

 

 

 

2.2使用细节

1、扫描范围功能

 

 

 

 

2、配置只在开发环境时启用Swagger

1)配置环境启用dev

spring.profiles.active=dev

2)通过env判断是否在dev环境

3)设置enable

 

 

 

 

 

3、配置多个分组

每个开发者应该有一个自己的分组,分组内扫描自己写的api

 

 

2.3常用注释类注解

1、实体类注解

 

 

 

 

2、方法注释

 

 

 

 

3、参数注释