前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >springboot系列学习(二十二):swagger这个就是一个工具 ,这个是可以生成项目的开发文档,swagger界面的详解和配置类的详解(一)

springboot系列学习(二十二):swagger这个就是一个工具 ,这个是可以生成项目的开发文档,swagger界面的详解和配置类的详解(一)

作者头像
一写代码就开心
发布2020-11-20 10:25:16
1.6K0
发布2020-11-20 10:25:16
举报
文章被收录于专栏:java和python

主要利用这个工具生成开发文档,让前端后端工程师使用这个文档开发代码,前后台耦合性变小。

现在前后端开发出现的问题

前后端集成,前端或者后端无法做到“及时协商,尽早解决”,最终导致问题集中爆发

解决方法:Swagger

首先定义schema [ 计划的提纲 ],并实时跟踪最新的API,降低集成风险 号称世界上最流行的API框架

Restful Api 文档在线自动生成器 => API 文档 与API 定义同步更新

直接运行,在线测试API

支持多种语言 (如:Java,PHP等)

官网:https://swagger.io/

也就是我们可以使用swagger,自动的生成项目的api接口

springboot项目集成swagger的步骤:

1 创建一个springboot的项目 2 导入swagger的依赖

得导入两个依赖,一个是核心依赖,一个是界面依赖,swagger是有自己单独的界面的。导入这个依赖之后,我们就可以看见了。 3 配置swagger

4 启动项目 5 访问测试 :http://localhost:8080/swagger-ui.html ,可以看到swagger的界面;

出现了以上的界面,那么我们的springboot项目已经集成了swagger。现在我们要在项目里面使用这个,那么就需要开始配置

之前我们访问的swagger的页面,看见都是英文的,现在我们想要改为自己的,那么我们就可以在配置类里面改了之后,重新访问就可以看见改之后的页面。那么配置类里面是如何改呢? 修改默认的配置信息

代码语言:javascript
复制
@Configuration //配置类
@EnableSwagger2// 开启Swagger2的自动配置
public class SwaggerConfig {

    @Bean //配置docket以配置Swagger具体参数
    public Docket docket() {
// apiInfo()这个方法里面就是修改页面的东西
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo());
    }


    //配置文档信息
    private ApiInfo apiInfo() {
    //作者信息
        Contact contact = new Contact("联系人名字", "http://xxx.xxx.com/联系人访问链接", "联系人邮箱");
        return new ApiInfo(
                "Swagger学习", // 标题
                "学习演示如何配置Swagger", // 描述
                "v1.0", // 版本
                "http://terms.service.url/组织链接", // 组织链接
                contact, // 联系人信息
                "Apach 2.0 许可", // 许可
                "许可链接", // 许可连接
                new ArrayList<>()// 扩展
        );
    }
}

以上是默认的配置写完了,现在开始配置我们写的接口

也就是我们写的接口,controller层接口路径,是如何显示在这个swagger页面的

或者这样说,如何让swagger扫描指定的接口

现在后端的controller层写的东西是这

那么项目一启动,我们在swagger页面就可以看见这个

现在在controller层加一个方法

重新启动项目,看swagger界面

以上是多了一个接口,但是现在 的问题是,我们在后端不管写几个接口,在swagger都会显示,这个是不好的,我们现在相的是,可以控制显示的接口,想让哪个接口显示那么就让哪个接口显示,这个怎么做,这个就又要到swagger里面配置了,具体如何配置呢?

配置扫描接口

代码语言:javascript
复制
    @Bean //配置docket以配置Swagger具体参数
    public Docket docket() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()// 通过.select()方法,去配置扫描接口,RequestHandlerSelectors配置如何扫描接口
                .apis(RequestHandlerSelectors.basePackage("com.controller"))
                .build();
    }

以上配置就是只是扫描这个包下的所有的东西,其他的东西不要,那么我们看见页面就变为了

连之前的error,model 这些都没有了。只有我们配置的东西

代码语言:javascript
复制
RequestHandlerSelectors.basePackage("com.controller") 这个basePackage()方法的意思是扫描指定的包。

其实还有这些多的方法

以上的配置是扫描包,但是现在我想要扫描一个类里面的一个方法,这个类里面有很多的方法

配置Swagger开关

1、通过enable()方法配置是否启用swagger,如果是false,swagger将不能在浏览器中访问了

2 我们希望上线的时候不使用这个swagger,开发的时候使用,这个咋处理

yml文件是一般项目里面有两个,一个是测试yml,一个是上线的yml,那么我们就需要在swagger配置类里面配置了,看看现在使用的是什么yml,之后根据这个再决定使用不使用swagger这个工具。 也就是在swagger配置类里面获取当前的生产环境

现在有两个环境

配置API分组

什么是api分组,我们先看swagger界面,最最有上面有一个这个。

下拉框里面有选项,但是默认的只有一个,这个默认的default在源码里面的位置是 docker类里面

所以我们只需要改这个属性的值就可以了

如何配置多个分组?配置多个分组只需要配置多个docket即可:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/10/04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 现在前后端开发出现的问题
  • 解决方法:Swagger
    • 也就是我们可以使用swagger,自动的生成项目的api接口
    • springboot项目集成swagger的步骤:
    • 出现了以上的界面,那么我们的springboot项目已经集成了swagger。现在我们要在项目里面使用这个,那么就需要开始配置
    • 以上是默认的配置写完了,现在开始配置我们写的接口
    • 也就是我们写的接口,controller层接口路径,是如何显示在这个swagger页面的
    • 或者这样说,如何让swagger扫描指定的接口
    • 配置扫描接口
    • 配置Swagger开关
    • 配置API分组
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档