对于某些错误代码,我正在尝试向 API 中的所有端点添加默认错误模型。
我通过阅读以下问题找到了部分解决方案:
这是我为该定制创建的 bean:
@Bean
public OpenApiCustomiser customOpenApiCustomiser() {
return openApi -> {
openApi.getPaths().values().forEach(pathItem -> pathItem.readOperations().forEach(operation -> {
Schema sharedErrorSchema = ModelConverters.getInstance()
.read(Error.class)
.getOrDefault("Error", new Schema());
MediaType sharedMediaType = new MediaType().schema(sharedErrorSchema);
Content sharedContent = new Content()
.addMediaType(APPLICATION_JSON_VALUE, sharedMediaType);
ApiResponses apiResponses = operation.getResponses();
ApiResponse response = new ApiResponse()
.description("Unhandled server error")
.content(sharedContent);
apiResponses.addApiResponse("500", response);
}));
};
}
Run Code Online (Sandbox Code Playgroud)
我的 Error 类看起来像:
public class Error {
private String message;
private List<ErrorItem> errorItems;
}
Run Code Online (Sandbox Code Playgroud)
问题是,当我在 swagger-ui 中打开端点定义之一时,出现以下错误:
Could …