教你怎么用SpringBoot整合Swagger作为API

 更新时间:2021年05月07日 15:05:40   作者:键盘歌唱家  
这篇文章主要介绍了教你怎么用SpringBoot整合Swagger作为API,文中有非常详细的代码示例,对正在学习java的小伙伴们有很好的帮助,需要的朋友可以参考下

前言

相信无论是前端还是后端开发,都或多或少地被接口文档折磨过。前端经常抱怨后端给的接口文档与实际情况不一致。后端又觉得编写及维护接口文档会耗费不少精力,经常来不及更新。其实无论是前端调用后端,还是后端调用后端,都期望有一个好的接口文档。但是这个接口文档对于程序员来说,就跟注释一样,经常会抱怨别人写的代码没有写注释,然而自己写起代码起来,最讨厌的,也是写注释。所以仅仅只通过强制来规范大家是不够的,随着时间推移,版本迭代,接口文档往往很容易就跟不上代码了。而自动生成接口文档的框架就是我们今天的主角Swagger!

一、基本使用

使用时需要导入下面的依赖:

<!--引入swagger,自动生成api说明文档-->
        <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>

然后书写下面的配置类即可完成配置!

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

浏览器访问http://localhost:8910/swagger-ui.html,即可可以看到下面的界面:

在这里插入图片描述

二、自定义描述内容

@Configuration
@EnableSwagger2 //开启swagger2
public class SwaggerConfig {
    @Bean
    public Docket docket(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                //是否启动swagger
//                .enable(false)
                .groupName("卢泽龙")
                .select()
                //RequestHandlerSelectors:配置要扫描的接口方式
//                    basePackage : 指定要扫描的包
                    .apis(RequestHandlerSelectors.basePackage("org.lzl.laboratory.controller"))
//                    any:扫描全部
//                    .apis(RequestHandlerSelectors.any())
//                    none:不扫描
//                    .apis(RequestHandlerSelectors.none())
//                    withClassAnnotation:扫描类上的注解
//                    .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class))
//                    withMethodAnnotation:扫描方法上的注解
//                    .apis(RequestHandlerSelectors.withMethodAnnotation(GetMapping.class))
                //path() 过滤什么路径
//                    .paths(PathSelectors.ant("/lzl/**"))
                .build();
    }

 //配置swagger信息 ==> apiInfo
    private ApiInfo apiInfo(){
        //作者信息
        Contact contact = new Contact("卢泽龙","https://blog.csdn.net/MoastAll","382491212@qq.com");

        return new ApiInfo(
                "云上实验室的API文档说明",
                "abcdefg",
                "v1.0",
                "https://blog.csdn.net/MoastAll",
                contact,
                "Apache 2.0",
                "http://www.apache.org/licenses/LICENSE-2.0",
                new ArrayList()
        );
    }
 }

其中如果有这样的需求:在dev,test环境中开启swagger,其他环境不开启swagger,我们只需要给Docket加上下面的environment参数,再用acceptsProfiles方法来判断环境是否符合要求!

在这里插入图片描述

使用的效果为:

在这里插入图片描述

三、给下面的models和接口一些提示信息

1.给实体类加入下面的注解

在这里插入图片描述

http://localhost:8910/swagger-ui.html的models就会呈现下面的界面:

在这里插入图片描述

2.给controller加上下面的注解

在这里插入图片描述

就会出现下面的提示信息:

在这里插入图片描述

到此这篇关于教你怎么用SpringBoot整合Swagger作为API的文章就介绍到这了,更多相关SpringBoot整合Swagger作为API内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java实现构造无限层级树形菜单

    java实现构造无限层级树形菜单

    这篇文章主要介绍了java实现构造无限层级树形菜单,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • idea2020.3.3集成maven及遇到的坑(推荐)

    idea2020.3.3集成maven及遇到的坑(推荐)

    这篇文章主要介绍了idea2020.3.3集成maven的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Java 3种方法实现进制转换

    Java 3种方法实现进制转换

    这篇文章主要介绍了Java 3种方法实现进制转换,帮助大家利用Java处理数据,感兴趣的朋友可以了解下
    2020-09-09
  • Java使用Ajax实现跨域上传图片功能

    Java使用Ajax实现跨域上传图片功能

    这篇文章主要介绍了Java使用Ajax实现跨域上传图片功能,需要的朋友可以参考下
    2017-09-09
  • Intellij IDEA 关闭和开启自动更新的提示?

    Intellij IDEA 关闭和开启自动更新的提示?

    这篇文章主要介绍了Intellij IDEA 关闭和开启自动更新的提示操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • Java中CountDownLatch进行多线程同步详解及实例代码

    Java中CountDownLatch进行多线程同步详解及实例代码

    这篇文章主要介绍了Java中CountDownLatch进行多线程同步详解及实例代码的相关资料,需要的朋友可以参考下
    2017-03-03
  • Springboot2.x+Quartz分布式集群的实现

    Springboot2.x+Quartz分布式集群的实现

    这篇文章主要介绍了Springboot2.x+Quartz分布式集群的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • IntelliJ IDEA 的 Spring 项目如何查看 @Value 的配置和值(方法详解)

    IntelliJ IDEA 的 Spring 项目如何查看 @Value 的配置和值(方法详

    这篇文章主要介绍了IntelliJ IDEA 的 Spring 项目如何查看 @Value 的配置和值,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • springboot全局异常处理代码实例

    springboot全局异常处理代码实例

    这篇文章主要介绍了springboot全局异常处理代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Java8 Map中新增的方法使用总结

    Java8 Map中新增的方法使用总结

    这篇文章主要介绍了Java8 Map中新增的方法使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11

最新评论