我有一个配置了 OpenAPI 的 Spring Boot 应用程序,并且能够显示 Swagger UI。我在该 UI 中看到所有端点以及所有受支持的 HTTP 动词,其中许多端点都有示例请求数据,例如
POST
也是如此。但并非全部,某些端点具有以下默认值:
"string"
是错误的,请求正文需要是一个特殊的用户DTO,并且在UI底部的Schemas
部分中,DTO及其所有字段等正确显示。所以UI似乎是知道该 DTO,但由于某种原因无法为其创建默认请求。
它需要看一些东西,但我不知道什么。这不仅仅是
@Schema
之类的,因为一些具有示例请求数据的端点根本不使用这些注释,但 UI 仍然呈现示例请求。
这不仅仅是映射本身,因为由于历史原因,我的大多数控制器都为所有控制器和不同实体扩展了一些通用的东西处理
POST
。但对于某些控制器和实体,UI 确实会呈现示例请求数据,而对于某些控制器和实体则不会,即使所有这些都共享相同的通用实现。
那么 UI 是如何创建这些示例主体的呢?
谢谢!
尝试使用:
@ApiResponse(responseCode = "200", description = "Description", content = { @Content(schema = @Schema(implementation = YourClass.class), mediaType = "application/json") }),