Skip to content

Message Identification when oneOf is expected #1095

@crazyash

Description

@crazyash

I have an asyncapi, similar to the one below. Is there a standard way to identify the message that we receive in the channel?

For instance, In the below example, how to identify the message sent on test2 channel? How do we know if it's objectWithKey or objectWithKey2?

asyncapi: 3.0.0
info:
  title: OneOf example
  version: 1.0.0
channels:
  test:
    address: test
    messages:
      testMessages:
        $ref: '#/components/messages/testMessages'
  test2:
    address: test2
    messages:
      objectWithKey:
        payload:
          $ref: '#/components/schemas/objectWithKey'
      objectWithKey2:
        payload:
          $ref: '#/components/schemas/objectWithKey2'
operations:
  onTestMsg:
    action: receive
    channel:
      $ref: '#/channels/test'
    messages:
      - $ref: '#/channels/test/messages/testMessages'
  sendTest:
    action: send
    channel:
      $ref: '#/channels/test2'
    messages:
      - $ref: '#/channels/test2/messages/objectWithKey'
      - $ref: '#/channels/test2/messages/objectWithKey2'
components:
  messages:
    testMessages:
      payload:
        oneOf:
          - $ref: '#/components/schemas/objectWithKey'
          - $ref: '#/components/schemas/objectWithKey2'
    testMessage1:
      payload:
        $ref: '#/components/schemas/objectWithKey'
    testMessage2:
      payload:
        $ref: '#/components/schemas/objectWithKey2'
  schemas:
    objectWithKey:
      type: object
      properties:
        key:
          type: string
    objectWithKey2:
      type: object
      properties:
        key2:
          type: string

Metadata

Metadata

Assignees

No one assigned

    Labels

    ❔ QuestionA question about the spec or processes

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions