为何Swagger UI将所有接口归入default分组?
问题原因分析
1. 版本规范兼容性差异
springdoc-openapi(Spring Boot 3网关使用)与springfox(Spring Boot 2微服务使用)的OpenAPI规范实现存在细节差异:
- springfox 3.0.0基于OpenAPI 3.0,但生成的文档结构和springdoc期望的标准格式不完全匹配,尤其是
tags字段的生成逻辑。 - springdoc-openapi 2.x严格遵循OpenAPI 3.0/3.1标准,当解析到缺失
tags字段的接口文档时,会默认将接口归入default分组。
2. Springfox的Tags生成逻辑缺陷
springfox 3.0.0在Spring Boot 2环境下,若控制器未显式添加@Api(tags = "...")注解,默认不会生成tags字段(返回null而非空数组):
- 即便你尝试用空列表替代null,若Jackson序列化配置未正确生效,最终输出的JSON中依然会缺失
tags字段。 - springdoc在处理无
tags字段的接口时,无法识别控制器分组,只能统一放入默认分组。
3. 网关文档聚合的兼容缺失
Spring Boot 3的springdoc网关在聚合Spring Boot 2微服务的springfox文档时,未做兼容性适配:
- springdoc对OpenAPI文档的校验更严格,当微服务返回的文档缺少
tags这类关键分组字段时,无法自动映射到控制器对应的分组,触发默认分组逻辑。
内容的提问来源于stack exchange,提问作者Sergey Zolotarev
相关产品推荐
相关产品推荐

