SpringBoot整合Swagger作为API

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

直接用案例来说明问题:

1.基本使用:

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

        <!--引入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,即可可以看到下面的界面:
在这里插入图片描述

2.如果想自定义一些描述内容,可以加入下面的bean

@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方法来判断环境是否符合要求!
在这里插入图片描述
使用的效果为:

在这里插入图片描述

3.给下面的models和接口一些提示信息

1.给实体类加入下面的注解
在这里插入图片描述
http://localhost:8910/swagger-ui.html的models就会呈现下面的界面:
在这里插入图片描述
2.给controller加上下面的注解
在这里插入图片描述
就会出现下面的提示信息:

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

键盘歌唱家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值