如何在Swagger UI中让响应示例显示DTO中隐藏的id字段
解决方案
你只需要调整BookDto中id字段的@Schema注解配置,无需修改现有@ApiResponse的内容:
将原来隐藏id的注解(比如@Schema(hidden = true))替换为:
@Schema(accessMode = Schema.AccessMode.READ_ONLY) private Long id;
原理说明
accessMode = Schema.AccessMode.READ_ONLY会告诉Swagger:该字段仅用于响应数据,不会出现在请求的示例或参数列表中。- 这样既保留了POST请求示例中不显示
id的需求,又能让Swagger UI自动在响应示例中包含id字段,完全满足你无需自定义@Contentschema的要求。
调整后,响应示例会自动更新为:
{ "id": 1, "title": "string", "subtitle": "string", "publisher": "string", "publishedDate": "string", "description": "string", "pageCount": 0, "language": "string", "previewLink": "string", "numberOfItems": 0 }
内容的提问来源于stack exchange,提问作者Andrei Raskolnikov
相关产品推荐
相关产品推荐

