2

我需要公开一些不直接在 REST API 方法中使用的模型。

使用 springfox,我使用 Docket 的additionalModels方法以编程方式将模型添加到规范中:

docket.additionalModels(
  typeResolver.resolve(XModel1.class),
  typeResolver.resolve(XModel2.class)
)

如何用springdoc做到这一点?

我用 dummy-parameter 创建了一个虚拟操作,其中包括所有必需的模型。但我觉得这种方法有改进的空间。

4

2 回答 2

3

使用 OpenApiCustomiser ,您可以访问 OpenAPI 对象。您可以添加任何您想要的对象/操作,而无需在代码上添加注释。

您可以查看文档以获取更多详细信息:

于 2020-02-25T20:54:15.507 回答
0

在科特林

fun components(): Components {
    val components = Components()

    val converter = ModelConverters.getInstance()

    val schema1 = converter.readAllAsResolvedSchema(XModel1::class.java)
    val schema2 = converter.readAllAsResolvedSchema(XModel2::class.java)

    schema1.referencedSchemas.forEach { s -> components.addSchemas(s.key, s.value) }
    schema2.referencedSchemas.forEach { s -> components.addSchemas(s.key, s.value) }

    return components
}

此外,您可能需要在application.yml中指定属性:

springdoc:
    remove-broken-reference-definitions: false
于 2020-08-16T22:17:24.227 回答