【发布时间】:2022-10-25 15:30:44
【问题描述】:
我正在努力生成一个包含可为空枚举的 API 文档。
设置
我们有一个接受请求的端点,这个请求包含一个可以为空的枚举类型的字段。所以想象一下这样的事情:
class Request {
@Nullable
@Schema(nullable = true, example = "RED")
private Color color;
}
enum Color {
RED,
GREEN,
YELLOW
}
一旦我们使用 springdoc-openapi 生成 swagger api 定义,我们就会得到以下 yml:
[...]
components:
schemas:
Request:
type: object
properties:
color:
type: string
nullable: true
example: RED
enum:
- RED
- GREEN
- YELLOW # missing entry for null
这允许请求省略 color 属性,但是如果有人发送 color = null,根据 api,这不是一个有效的请求,因为 null 没有作为枚举中的值列出。
我正在使用 springdoc-openapi 版本 1.6.11。
问题
因为像 @NotNull 这样的注释也会被选中,我希望 @Nullable 也会被选中,因此应该将 null 添加到可能的值列表中。或者我怎样才能实现一个允许 null 作为有效输入的枚举?
任何帮助深表感谢。
其他信息
我已经尝试找到解决方法,但没有成功。我尝试将 null 添加到 Schema 注释中的 allowableValues 中,但这是不允许的,因为错误属性值必须是常量错误弹出。
可能与此 GitHub 问题有关:https://github.com/swagger-api/swagger-core/issues/3945
【问题讨论】:
标签: springdoc