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

SpringBoot中Swagger UI配置RequestBody示例不显示问题

SpringBoot 集成 Swagger UI 配置请求体示例值不生效解决方法

问题根因

你引入的springfox-boot-starter 3.0.0版本对 OpenAPI 3(Swagger v3)标准注解的支持存在未修复的兼容缺陷,无法正确解析@Content注解下通过@ExampleObject配置的自定义请求体示例,无论将注解放置在参数层还是方法层都不会生效。

可行解决方案

方案1:替换为Spring官方生态维护的springdoc-openapi依赖(推荐)

Springfox 项目已停止维护多年,上述注解兼容问题官方始终没有推出修复版本,替换为springdoc-openapi可以原生支持OpenAPI 3标准注解,无需修改原有业务注解代码:

  • 第一步:移除pom.xml中原有的springfox依赖
<!-- 删除原有springfox依赖 -->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-boot-starter</artifactId>
    <version>3.0.0</version>
</dependency>
  • 第二步:引入对应版本的springdoc依赖:SpringBoot 2.x版本使用1.x版本依赖,SpringBoot 3.x版本使用2.x版本依赖
<!-- SpringBoot 2.x 适用 -->
<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-ui</artifactId>
    <version>1.7.0</version>
</dependency>

替换完成后重启项目,原有代码中配置的@ExampleObject(value = "foobar")就会正常展示在Swagger UI的请求体示例区域。如果需要配置JSON格式的实体类示例,直接将value属性赋值为标准JSON字符串即可,示例如下:

@io.swagger.v3.oas.annotations.parameters.RequestBody(
        description = "待创建的人员信息,JSON格式",
        content = @Content(
                examples = @ExampleObject(value = "{\"firstName\":\"张\",\"lastName\":\"三\"}")
        )
)

方案2:保留springfox 3.0.0依赖的兼容写法

如果暂时无法替换依赖,可以使用springfox原生支持的@ApiModelProperty注解为实体字段配置示例值,该方式在3.0.0版本中可以正常解析:
修改PersonDTO类,添加对应注解配置:

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

@ApiModel(description = "人员信息实体")
class PersonDTO{
    @ApiModelProperty(value = "名", example = "三")
    String firstName;
    @ApiModelProperty(value = "姓", example = "张")
    String lastName;

    public PersonDTO() {}
    public String getFirstName() {
        return firstName;
    }
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
    public String getLastName() {
        return lastName;
    }
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
}

配置完成后,Swagger UI会自动拼接各字段的示例值,生成完整的JSON请求体示例,无需在@RequestBody注解中额外配置@ExampleObject。

注意:springfox 3.0.0不支持配置非实体结构的纯字符串请求体示例(比如你预期展示的"foobar"),如果有这类需求只能选择方案1替换依赖。


内容的提问来源于stack exchange,提问作者JB_KT

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 08:33:24