You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 19:24:03