我正在尝试在项目中设置 OpenApi 文档。目前,我正在记录一个接收 DTO 并返回 DTO 作为响应的端点。
我的实体 DTO 有一个隐藏的私有字段(通过 @Schema 注释:id)。我用的是这个安诺。因为 POST 的示例 JSON 中没有包含该字段..
到目前为止一切都很好,但我希望在 swagger-ui 内的响应示例值 JSON 中显示 id。
响应和请求的示例相同: { “标题”:“字符串”, “副标题”:“字符串”, “出版商”:“字符串”, "发布日期": "字符串", “描述”:“字符串”, “页数”:0, “语言”:“字符串”, "预览链接": "字符串", “项目数量”:0 }
但是为了记录“响应”,我希望下面的 JSON 也包含隐藏的架构字段。我可以以某种方式做到这一点吗? [图像示例] ()
我的方法如下:
@ApiResponse(description = "成功响应", responseCode = "200",content = @Content(schema = @Schema(implementation = BookDto.class)))
但我希望能够在不创建自定义 @Content 模式的情况下,将隐藏字段包含在 API 响应文档示例中。
好吧,我为我的遭遇找到了解决方案。
而不是在我的 DTO 中使用
@Schema(hidden=true)
作为 id
字段。我改用:@Schema(accessMode = Schema.AccessMode.READ_ONLY)
。
这改变了 Swagger 的行为,如我所愿。