RoN*_*Whe 5 schema spring-boot springdoc springdoc-openui
我正在使用 SpringDoc 并尝试以编程方式向 OpenApi 添加架构,但没有成功。
@Bean
public OpenAPI customOpenAPI() {
Schema mySchema = new Schema<Object>();
mySchema
.type("object")
.$ref("#/components/schemas/MySchema")
.name("MySchema")
.addProperties("testStr", new StringSchema());
return new OpenAPI()
.servers(servers)
.info(new Info().title(title).version(version).description(description))
.components(new Components()
.addSchemas("MySchema" , mySchema)
)
.tags(tags);
}
Run Code Online (Sandbox Code Playgroud)
mySchema 的描述未添加到我在生成的 YAML 文件中看到的架构列表中,如果我尝试引用它:
apiResponses.entrySet().forEach(response -> response.getValue().addHeaderObject("XxX",
new Header().$ref("#/components/schemas/MySchema")));
Run Code Online (Sandbox Code Playgroud)
swagger UI 中显示以下错误:
paths./XX/v1/test/status/{entry}.get.responses.404.headers.XxX.$ref 处的解析器错误 无法解析引用:无法解析指针:/components/schemas/MySchema
请问您能帮我理解一下吗?
编辑:我正在使用版本1.3.9
小智 6
看起来您的架构正在被自动生成的架构所取代。尝试这个:
@Bean
public OpenApiCustomiser openApiCustomiser() {
return openApi -> {
var mySchema = new ObjectSchema();
mySchema.name("MySchema");
var schemas = openApi.getComponents().getSchemas();
schemas.put(mySchema.getName() , mySchema);
};
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11340 次 |
| 最近记录: |