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

如何在springdoc-openapi的@Schema中添加多示例并维护在模型类?

在Springdoc-OpenAPI的模型类中为@Schema添加多示例的实现方案

完全可行,已有大量开发者实现了这个需求,核心是通过叠加@ExampleObject注解来实现,无需在接口层重复定义示例,让代码更整洁且示例与模型同步。

实现方式1:为模型字段添加多示例

直接在模型类的字段上叠加多个@ExampleObject注解,Springdoc-OpenAPI会自动识别并在Swagger UI中展示多个可选示例:

public class User {
    @Schema(description = "用户唯一标识")
    @ExampleObject(name = "数字型ID", value = "1001")
    @ExampleObject(name = "字符串型ID", value = "usr_202405")
    private String userId;

    @Schema(description = "用户年龄")
    @ExampleObject(value = "22")
    @ExampleObject(value = "35")
    private Integer age;
}

在Swagger UI中,对应字段的示例区域会出现切换选项,方便查看不同场景的示例值。

实现方式2:为整个模型类添加多示例

如果需要给整个模型对象设置多组完整示例,可在类级别叠加@ExampleObject:

@Schema(description = "用户信息模型")
@ExampleObject(name = "在校用户", value = "{\"userId\":\"1001\", \"age\":22, \"username\":\"小明\"}")
@ExampleObject(name = "职场用户", value = "{\"userId\":\"usr_202405\", \"age\":35, \"username\":\"张工\"}")
public class User {
    private String userId;
    private Integer age;
    private String username;
}

这种方式会在模型的示例展示区,提供多个完整的对象结构示例,更直观展示不同场景下的模型数据。

注意事项

  • @ExampleObject的value参数:如果是简单类型(字符串、数字等)直接写值即可;如果是复杂对象,需要传入合法的JSON格式字符串。
  • 该方案完全符合Springdoc-OpenAPI的设计逻辑,示例与模型绑定后,模型更新时只需同步修改注解内容,避免了接口层与模型层示例不一致的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 12:31:26