Skip to main content
Version: 当前版本

拉取swagger注册API文档

此篇文介绍如何将各个后端微服务的 Swagger API文档 聚合到 Apache ShenYu 网关管理系统。

1. 说明#

远程拉取swagger文档,目前仅支持swaggger2.0,并且只支持 Divide 和 SpringCloud 两种代理插件。

2. 环境准备#

2.1 启动shenyu-admin#

参考 运维部署 , 选择一种方式启动shenyu-admin

2.2 开启远程拉取swagger文档的全局开关#

默认已开启。在Apache ShenYu网关管理系统 --> 基础配置 --> 字典管理, 找到字典编码为 apidoc的数据,修改 字典值: true

【注意】字典值:true表示开关已开启,false表示已关闭。若关闭后,shenyu-admin不会自动拉取各个微服务的swaggger文档。

apidoc-dictionary-cn

3. 运行示例项目#

3.1. 下载 shenyu-examples-http-swagger2

3.2. 运行org.apache.shenyu.examples.http.ShenyuTestSwaggerApplication main方法启动项目。

examples项目会根据 shenyu.register.serverLists 配置的地址,通过 Shenyu client 注解(比如@ShenyuSpringMvcClient) 将服务启动信息同步给 shenyu-admin, 然后触发 shenyu-admin 远程拉取swagger文档并完成解析,最后聚合产出新的API文档。

4. 演示效果#

4.1 API文档列表#

Apache ShenYu网关管理系统 --> 文档说明 --> API文档,你可以看到已经聚合好的API文档。

apidoc-swagger-list-cn

4.2 API详情效果#

apidoc-detail-cn

5. 如何自动更新API文档#

5.1 重启项目#

如上面示例那样,通过启动项目触发自动更新API文档。

5.2 修改proxy插件选择器的启动时间#

在 proxy插件--> 选择器,找到目标服务,然后修改启动时间。

注意:新设置的启动时间一定不能早于原启动时间,否则不会触发自动拉取并刷新API文档。

app-proxy-startuptime-cn