我正在处理一个Sping Boot 2.5.2 + Java 8项目,该项目具有Open API 3.0:
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.6.14</version>
</dependency>
我需要向用户显示一些特定的错误主体,如下所示:
此示例来自另一个Sping Boot 项目,其中swagger与yaml文件进行了Map。
我需要展示一个类似的主体但使用注解的例子(因为如果添加了一个新的端点,它会自动Map到Swagger UI。我们面临着一个问题,开发人员忘记Mapyaml文件中的端点,这个操作试图避免这种情况)。
以下是我的Map:
@ApiResponse(responseCode = "401",
description = "Something is required.",
content = {
@Content(mediaType = "application/json",
examples = {
//The problem lays here!!
}
)
})
})
public abstract ResponseEntity<Mono<Object>> queryLegacy(String query);
我的错误类是ErpResponseBodyDTO.class
。
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ErpResponseBodyDTO{
private Long code;
private String message;
}
如何创建这个类的示例(如new ErpResponseBodyDTO(123, "Error Message");
)并将其用作示例?
我是说,就像:
...
@Content(mediaType = "application/json",
examples = {
new ErpResponseBodyDTO(123, "Error Message"),
new ErpResponseBodyDTO(456, "Error Message 2"),
new ErpResponseBodyDTO(789, "Error Message 3")
}
)
...
我不想手动编写Json示例,因为我的API有很多可能的错误,并且在@ExampleObject(value=" {"A":"BIG", "JSON":"HERE"} ")
中编写它会污染代码。
1条答案
按热度按时间dwbf0jvd1#
Spring有一个库,您可以在其中操作整个OpenAPI项目。
这是我的配置类,它是解决方案:
如您所见,我从参考资料中读取了一个Json文件: