「这是我参与2022首次更文挑战的第18天,活动详情查看:2022首次更文挑战」。
哈喽大家好,我是阿Q!
上文中我们已经讲解了搭建 swagger 注册中心以及如何搭建 swagger-starter 的内容,本文我们就从实战角度出发,将它真正的用起来!
这篇文章介绍的两个项目的源代码地址:
| 项目名称 | 项目地址 |
|---|---|
swagger-register-server | gitee.com/kdyzm/swagg… |
swagger-spring-boot-starter | gitee.com/kdyzm/swagg… |
启动swagger注册中心
该项目启动需要连接mysql数据库以及nacos
nacos我搭建了一个在线版本,可以直接使用(这里不提供管理端的账号密码),nacos在线地址:nacos.kdyzm.cnmysql需要自己创建数据库,运行脚本创建相关的数据库和表结构以及初始化部分数据。
脚本地址:
https://gitee.com/kdyzm/swagger-register-server/blob/master/sql/init.sql
准备好外部依赖之后,执行sql文件夹中的sql文件,最后启动项目即可,启动成功之后,访问项目的/doc.html,即可看到knife4j的文档页面。
这里我提供了线上部署好的版本:http://swagger.kdyzm.cn
编译打包 starter
上一步启动好了swagger-register-server,接下来需要打包swagger-spring-boot-starter以供微服务客户端使用。
因为这里并没有上传maven中央仓库,所以有条件的可以上传nexus私服,没条件的可以直接运行命令mvn clean install将jar包安装到本地maven仓库以便使用。
创建测试项目
可以使用intelij自带的工具初始化一个spring boot的项目,这里使用了2.3.4.REALEASE版本的springboot版本号(经过测试发现,nacos版本号过高会导致服务发现功能故障,版本号低一些程序功能会更稳定)。
利用intilij自带的spring initiallizer工具可以很方便的快速搭建起来web开发框架。写完Controller接口之后,开始整合swagger-spring-boot-starter。
测试项目地址源代码:
https://gitee.com/kdyzm/swagger-spring-boot-starter-test
第一步:引入依赖
<!-- swagger功能组件 -->
<dependency>
<groupid>com.kdyzm</groupid>
<artifactid>swagger-spring-boot-starter</artifactid>
<version>1.0-SNAPSHOT</version>
</dependency>
第二步:配置swagger信息
在配置文件中新增配置
swagger:
config:
#每个人只关心自己的包名,方便和前端文档对接
base-package: com.kdyzm.swagger.test
description: swagger测试项目
group:
#swagger注册唯一标识,每个人都要不一样
appName: ${spring.application.name}
name: swagger测试项目
api:
title: swagger测试项目
contactName: kdyzm@foxmail.com
#swagger注册中心地址,指定了server-url就优先使用该地址注册swagger文档信息;未指定则顺延使用服务发现模式
server-url: http://swagger.kdyzm.cn
#swgger注册中心serviceId,即servername,用于服务发现模式
service-id: swagger-register-server
第三步:激活
只是做了前两步,不会对项目产生任何影响,也不会产生swagger文档,必须激活swagger profile才会生效。
项目启动之后如果没有任何报错,打开文档地址:http://swagger.kdyzm.cn/doc.html查看文档上传效果。
题外篇
阿Q将持续更新
java实战方面的文章,感兴趣的可以关注下公众号:阿Q说代码,也可以来技术群讨论问题呦,点赞之交值得深交!