尝试将 AsyncAPI 中支持的数据类型映射到 Avro Schema 中可用的数据类型。 我们在 Avro 模式中有一个可用的数据类型,即 地图 ,试图找到一种在异步 API Yaml 中表示它的方法。任何人都可以提供建议吗?
AsyncAPI 中没有直接等效于 Avro 映射,但您可以使用additionalProperties
验证关键字将映射编码为object
:
type: object
additionalProperties:
type: integer
可能对应于阿夫罗map<int>
.
对于复杂类型,可以定义架构来表示复杂类型,并在additionalProperties
中使用$ref
而不是type
。
如上所述,对于复杂类型,您可以使用 extraalProperties: true
我将进一步详细说明
如您所见,"json"可能是动态的,我们不知道它的实际形状,因此我们可以将其用作以下示例
地图
type: object
additionalProperties: true
map
type: object
additionalProperties:
type: object
additionalProperties: true
还有这个附加属性:true 是相同的 附加属性: { } ,如果你愿意,你也可以使用它,用于 附加属性为假,您可以使用附加属性:不 : {}
但是如果你知道 JSON 的确切形状,你可以像这样使用它:
map
offset={"x":{"id":"sss"}}
type: object
additionalProperties:
type:object
properties:
id:
type: string
所以在这里只允许 id 字段