API平台:如何移除Swagger中自动生成的响应状态码描述
问题解决方法
这个问题是Swagger/OpenAPI生成框架默认会给POST接口自动添加通用状态码响应,你可以按你使用的技术栈选择对应配置:
如果你使用的是SpringDoc(Spring Boot 3+常用)
- 全局关闭自动添加默认响应的功能,在
application.yml中添加如下配置:
springdoc: default-responses: enabled: false
- 如果只想针对单个接口关闭,给接口方法添加
@ApiResponse注解显式覆盖,或者使用@Operation注解的responses属性仅声明你需要的200响应:
@Operation(responses = { @ApiResponse(responseCode = "200", description = "请求成功") }) @PostMapping("/your/path") public YourResponseDto yourApiMethod(){ // 业务逻辑 }
如果你使用的是SpringFox(旧版Spring Boot常用)
- 全局配置Docket的时候关闭默认响应:
@Bean public Docket api() { return new Docket(DocumentationType.OAS_30) .useDefaultResponseMessages(false) // 关闭默认响应 .select() .apis(RequestHandlerSelectors.basePackage("com.your.package")) .paths(PathSelectors.any()) .build(); }
- 如果是针对单个POST接口关闭,同样可以用
@ApiResponses注解仅声明你需要的200响应即可。
如果你是直接编写OpenAPI YAML规范生成文档
- 检查你的YAML配置中是否开启了全局默认响应配置,找到
components/responses或者全局defaultResponses字段,删除不需要的状态码配置即可;同时确保你的POST接口路径下的responses节点只保留200的声明:
paths: /your/api/path: post: summary: 你的接口说明 responses: '200': description: 请求成功 content: application/json: schema: $ref: '#/components/schemas/YourResponse' # 不要保留其他状态码的声明,也不要引入全局默认响应
注意:配置完成后需要重启应用/重新生成文档才能生效。
内容的提问来源于stack exchange,提问作者devStaky
相关产品推荐
相关产品推荐

