网关聚合 Swagger 文档的配置思路

zjc 于 2026-08-20 发布

微服务拆分后,接口文档如果分散在三个端口,前端要来回切换。开发环境的 Gateway 使用 SpringDoc 聚合 Swagger UI,一个页面切换 Provider、Consumer 和 Mail。

一、聚合入口

http://localhost/swagger-ui.html

页面里的文档组类似:

Provider v1
Consumer v1
Mail v1

二、OpenAPI JSON 走网关

Provider 的文档地址形如:

/api/v1/provider/v3/api-docs/v1-provider

网关根据模块名转发到对应服务,再把标准前缀重写为 SpringDoc 原生路径。

三、只在开发环境开放

生产 Profile 会关闭:

springdoc.api-docs.enabled
springdoc.swagger-ui.enabled

同时网关不注册 OpenAPI 转发路由。文档能暴露接口结构和参数模型,默认不应该出现在生产入口。

四、验证不能只看状态码

WebMVC 全局异常处理可能把不存在路径包装成 HTTP 200,响应体是 code=102。生产验证文档关闭时,要检查响应体,而不是只看 404。

五、经验总结

聚合文档提升的是协作效率,但必须和 Profile 绑定。开发默认开,生产默认关,这是比较稳的默认值。