在CUE中定义数组并导出到OpenAPI



对于以下简单的CUE代码,该代码定义了一个match对象,该对象包含两个队名(两个字符串的数组(和匹配的分数(两个整数的数组(:

#match: {
id: int
teams: 2 * [string]
score: 2 * [int]
}

当我运行cue export --out openapi test.cue(使用CUE v0.4.0(时,我得到错误消息:

components.schemas.match.properties.score.default.0: incomplete value int
components.schemas.match.properties.score.default.1: incomplete value int
components.schemas.match.properties.teams.default.0: incomplete value string
components.schemas.match.properties.teams.default.1: incomplete value string

如果我将string更改为string | *null,它会起作用——但是我真的不明白为什么数组的元素需要有一个默认值才能导出为OpenAPI(尤其是因为对对象属性没有这样的要求(?我是不是遗漏了什么?

通常,这看起来与OpenAPI不一致,并且值不完整。解决方法是指定默认元素。

import "list"
#s: string | *null
#match: {
id: int
teams: [#s, #s]
score: list.Repeat([int | *null], 2)
}

注意,我在这里编写teamscore的方式导致了略微不同但等效的模式。

顺便说一句,数学运算符已被弃用。您应该使用列表。对该部分重复上述步骤。如果你愿意,你也可以列出元素。

有关更多详细信息,请参阅https://github.com/cue-lang/cue/discussions/1115

相关内容

  • 没有找到相关文章

最新更新