我的springboot项目使用SpringDoc生成openapi规范。我想将一个json对象添加到生成的规范中。
{
"api-definition": {
"priority": 1,
"owner: "jack"
}
}
这样,生成的spec文件看起来就像
{"openapi":"3.0.1",
................
................
"api-definition": {
"priority": 1,
"owner: "jack"
}
}
有人能帮忙吗。
发布于 2022-07-16 17:05:49
我能够通过创建一个OpenApiCustomiser bean来做到这一点。
@Configuration
public class OpenApiConfig {
@Bean
public OpenApiCustomiser customise() {
return openApi -> {
try {
openApi.setExtensions(vendorExtensions());
} catch (JsonProcessingException e) {
log.error("bad json, should never happen");
}
};
}
private static ObjectMapper mapper = new ObjectMapper();
private Map<String, Object> vendorExtensions() throws JsonProcessingException {
MapType type = mapper.getTypeFactory().constructMapType(
Map.class, String.class, Object.class);
Map<String, Object> stringObjectMap = new HashMap<>();
stringObjectMap.put("api-definition",
mapper.readValue(readFile("api-definition.json"), type));
return stringObjectMap;
}
//To read file from resources folder
private String readFile(String fileName) {
ClassLoader classLoader = getClass().getClassLoader();
try {
return Files.readString(Path.of(classLoader.getResource(fileName).getFile()));
} catch (IOException ex) {
log.error(ex.getMessage());
}
return null;
}
}
below如下所示
{
"priority": 1,
"owner: "jack"
}
https://stackoverflow.com/questions/71156280
复制相似问题