网关如何聚合各个微服务的接口文档?

背景

在之前老顾的文章中,介绍过利用swagger实现api文档 ,我们每个微服务都有自己的一套api接口,那我们开发人员进行开发的时候,是需要打开很多api接口文档地址 ,太麻烦了,那能不能只打开一个接口地址,此地址聚合了下游服务的所有api接口文档地址

微服务Api接口配置

pom依赖包

Swagger配置

上面的配置不单单支持了接口文档,而且还只是多版本的接口文档配置,当然需要一些定制代码,看下面

接口版本

接口版本定义

配置使用

加入@ApiVersion注解就能够实现多版本了

上面的配置就是每个微服务的接口文档配置

注意如果有相关授权配置需要把相关的swagger的url地址配置成不需要授权

/doc.html,/swagger-ui.html,/webjars/,/v2/,/swagger-resources/**

网关配置

pom引入依赖包

因为Swagger暂不支持webflux项目 ,所以Gateway里不能配置SwaggerConfig ,也就是说Gateway无法提供自身API 。但一般也不会在网关项目代码里写业务API代码 。所以这里的集成只是基于WebMvc的微服务项目。

上面的代码就是把网关的路由解析出来 ,然后设置SwaggerResource;多版本的设置是基于/v2/api-docs?group=原理

配置网关路由

启动测试

访问网关地址http://localhost:8769/doc.html

总结

这样就做到了只要访问网关的api文档地址左上角进行项目接口版本切换。小伙伴有没有注意到文档的界面大有不同,就是引入了

xml 复制代码
<dependency>
   <groupId>com.github.xiaoymin</groupId>
   <artifactId>swagger-bootstrap-ui</artifactId>
   <version>1.9.3</version>
</dependency>

这个UI左右结构,非常方便,小伙伴可以自行体验一下哦。

相关推荐
像少年啦飞驰点、5 小时前
从零开始学 RabbitMQ:小白也能懂的消息队列实战指南
java·spring boot·微服务·消息队列·rabbitmq·异步编程
深圳行云创新6 小时前
微服务架构引入 AI 后,怎么统一研发和运维的标准规范?
人工智能·微服务·架构
是阿楷啊6 小时前
Java大厂面试场景:音视频场景中的Spring Boot与微服务实战
spring boot·redis·spring cloud·微服务·grafana·prometheus·java面试
天才奇男子15 小时前
HAProxy高级功能全解析
linux·运维·服务器·微服务·云原生
凯子坚持 c21 小时前
C++基于微服务脚手架的视频点播系统---客户端(4)
数据库·c++·微服务
老百姓懂点AI21 小时前
[微服务] Istio流量治理:智能体来了(西南总部)AI调度官的熔断策略与AI agent指挥官的混沌工程
人工智能·微服务·istio
JZC_xiaozhong1 天前
多系统权限标准不统一?企业如何实现跨平台统一权限管控
java·大数据·微服务·数据集成与应用集成·iam系统·权限治理·统一权限管理
岁岁种桃花儿1 天前
SpringCloud从入门到上天:Nacos做微服务注册中心
java·spring cloud·微服务
天远云服1 天前
天远车辆过户查询API微服务实战:用Go语言构建高性能车况溯源系统
大数据·微服务·架构·golang
瑶山1 天前
Spring Cloud微服务搭建三、分布式任务调度XXL-JOB
java·spring cloud·微服务·xxljob