Spring Boot中如何用Swagger注解为废弃接口关联新版本接口?
解决Spring Boot微服务Swagger标记废弃接口并关联v2版本的方案
核心思路
仅用@Deprecated注解只能标记接口废弃,但要在Swagger UI里显示关联的v2接口链接,需要结合Swagger专属注解配置描述信息和废弃状态。
针对OpenAPI 3.x(SpringDoc 常用版本)
如果你的项目用的是SpringDoc(适配OpenAPI 3.x),直接在v1接口的@Operation注解里配置:
- 设置
deprecated = true,让接口归入废弃区域 - 在
description里通过Markdown格式添加v2接口的链接(Swagger UI支持解析Markdown)
代码示例:
@Deprecated @GetMapping("/endpoint/v1") @Operation( deprecated = true, description = "该接口已废弃,请使用新版本接口:[/endpoint/v2](/endpoint/v2)" ) public ResponseEntity<String> oldEndpoint() { // 业务逻辑 return ResponseEntity.ok("v1 response"); } // v2接口示例 @GetMapping("/endpoint/v2") @Operation(summary = "新版本接口") public ResponseEntity<String> newEndpoint() { return ResponseEntity.ok("v2 response"); }
针对Swagger 2.x(Springfox 旧版本)
如果用的是Springfox(Swagger 2.x),在@ApiOperation里配置废弃状态和描述:
@Deprecated @GetMapping("/endpoint/v1") @ApiOperation( value = "旧版本接口", notes = "该接口已废弃,请使用新版本接口:[/endpoint/v2](/endpoint/v2)", deprecated = true ) public ResponseEntity<String> oldEndpoint() { return ResponseEntity.ok("v1 response"); }
效果说明
配置完成后,Swagger UI里的v1接口会:
- 显示在Deprecated分组区域(部分UI主题会用灰色或特殊标识标注)
- 接口描述里的Markdown链接可直接点击跳转到v2接口文档
内容的提问来源于stack exchange,提问作者Tim
相关产品推荐
相关产品推荐

