Документация / AsyncAPI

AsyncAPI 3.0

Редактор «Помощника SA» поддерживает и версию 3.0 — именно в ней написан пример нового документа. Версия 3.0 не совместима с 2.x напрямую; ниже — главные отличия.

Основные изменения

2.x3.0
Операции — внутри канала (publish / subscribe, «с точки зрения клиента»)Операции — отдельный раздел operations с явным действием action: send или action: receive («с точки зрения приложения»)
Имя канала = его адресКанал — объект с полем address; имя канала — ключ, адрес может отличаться
Сообщения — в операцииСообщения — в канале (channels.*.messages), операция ссылается на них
Сервер: urlСервер: host, pathname, protocol
Запрос-ответ описывается двумя каналамиЕсть объект reply у операции
Схема сообщения — в payload с schemaFormat у сообщенияСхему другого формата задают через Multi Format Schema Object (schemaFormat + schema)

Пример

asyncapi: 3.0.0
info:
  title: Сервис заказов
  version: 1.0.0
servers:
  production:
    host: kafka.example.ru:9092
    protocol: kafka
channels:
  orderCreated:
    address: orders.created
    messages:
      orderCreated:
        $ref: '#/components/messages/OrderCreated'
  orderCommands:
    address: orders.commands
    messages:
      cancelOrder:
        $ref: '#/components/messages/CancelOrder'
operations:
  sendOrderCreated:
    action: send
    channel:
      $ref: '#/channels/orderCreated'
    summary: Сервис сообщает о созданном заказе
  receiveCancelOrder:
    action: receive
    channel:
      $ref: '#/channels/orderCommands'
    summary: Сервис принимает команду отмены
components:
  messages:
    OrderCreated:
      payload:
        type: object
        required: [orderId]
        properties:
          orderId:
            type: string
            format: uuid
    CancelOrder:
      payload:
        type: object
        properties:
          orderId:
            type: string
          reason:
            type: string

Запрос и ответ

operations:
  getOrderStatus:
    action: send
    channel:
      $ref: '#/channels/statusRequests'
    reply:
      channel:
        $ref: '#/channels/statusReplies'

Переход с 2.x

  • subscribe в 2.x → action: send в 3.0 (приложение отправляет), publish → action: receive;
  • адрес канала переносится в address, а сообщения — в channels.*.messages;
  • servers.*.url делится на host и pathname;
  • для автоматического перевода есть официальный инструмент asyncapi convert (AsyncAPI CLI).

Обновлено: 30 сентября 2026 г.