如何定义AsyncAPI中的消息固定字段值



我们正在考虑使用CloudEvents作为系统中生成的事件的消息信封,并使用AsyncAPI定义这些消息。

我们使用CloudEventstype属性来识别每个事件类型,每个type使用不同的data属性模式。虽然我已经弄清楚如何使用AsyncAPI定义单个事件结构,但我无法确定如何将type属性设置为该事件类型所需的值。

似乎误用了enum关键字,但这是迄今为止我能够将事件类型与属性关联起来的唯一方法,如下例所示。在AsyncAPI规范中实现这些固定属性的定义是否有一个公认的模式?

channels:
user:
subscribe:
message:
payload:
$ref: '#/components/schemas/firstEventPayload'
components:
schemas:
firstEventPayload:
type: object
allOf:
- $ref: 'https://raw.githubusercontent.com/cloudevents/spec/v1.0.1/spec.json'
properties:
type:
type: string
enum: [test.cloud.event.new-user]
data:
type: object
properties:
userId:
type: string
format: uuid
email:
type: string
format: email

感谢developers.redhat.com为cloudevent/spec$ref

在JSON模式(AsyncAPI模式是它的超集)中,您也可以使用const,如:

type:
type: string
const: test.cloud.event.new-user

相关内容

  • 没有找到相关文章

最新更新