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

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

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

键盘歌唱家   2021-05-07 我要评论
想了解教你怎么用SpringBoot整合Swagger作为API的相关内容吗,键盘歌唱家在本文为您仔细讲解SpringBoot整合Swagger作为API的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:SpringBoot整合Swagger作为API,SpringBoot整合Swagger,下面大家一起来学习吧。

前言

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

在这里插入图片描述

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

在这里插入图片描述

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们