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

Схемы и компоненты

Schema — схема данных

Схемы AsyncAPI — надмножество JSON Schema Draft 07. Основные ключевые слова:

ГруппаКлючевые слова
Типtype (одно значение или массив, в т. ч. null), format
СтрокиminLength, maxLength, pattern
Числаminimum, maximum, exclusiveMinimum, exclusiveMaximum (числа, как в Draft 07), multipleOf
Массивыitems, minItems, maxItems, uniqueItems, contains
Объектыproperties, required, additionalProperties, propertyNames, minProperties, maxProperties
Значенияenum, const, default, examples
КомбинацииallOf, oneOf, anyOf, not, if / then / else
Описаниеtitle, description, readOnly, writeOnly
Дополнительно (AsyncAPI)discriminator (имя свойства), externalDocs, deprecated
components:
  schemas:
    Money:
      type: object
      required: [amount, currency]
      properties:
        amount:
          type: number
          minimum: 0
        currency:
          type: string
          enum: [RUB, USD, EUR]
    Order:
      type: object
      required: [id, total]
      properties:
        id:
          type: string
          format: uuid
        total:
          $ref: '#/components/schemas/Money'
        comment:
          type: [string, 'null']
          maxLength: 500

В отличие от OpenAPI 3.0, discriminator в AsyncAPI — просто имя свойства (строка), без mapping:

components:
  schemas:
    Pet:
      type: object
      discriminator: petType
      required: [petType]
      properties:
        petType:
          type: string

Components — переиспользуемые объекты

ПолеСодержимое
schemasСхемы данных.
messagesСообщения.
securitySchemesСхемы безопасности.
parametersПараметры каналов.
correlationIdsИдентификаторы корреляции.
operationTraits, messageTraitsОбщие части операций и сообщений.
serverBindings, channelBindings, operationBindings, messageBindingsНастройки протоколов.

Имена компонентов — латинские буквы, цифры, ., -, _.

Ссылки $ref

$ref работает так же, как в OpenAPI: URI с JSON Pointer после #.

СсылкаКуда ведёт
'#/components/messages/OrderCreated'сообщение в этом файле
'common/schemas.yaml#/Money'объект Money в файле из папки common
'../events/order.yaml'весь файл целиком

В проекте «Помощника SA» пути в $ref соответствуют дереву папок проекта (относительно папки ссылающегося файла), а Ctrl+клик по ссылке открывает нужный файл и переходит к определению. Предпросмотр строит документацию по открытому файлу.

Tag и External Documentation

  • Tag: name (обязательное), description, externalDocs — используется в корне, операциях и сообщениях.
  • External Documentation: url (обязательное), description.

Расширения (x-)

Как и в OpenAPI, в объекты можно добавлять свои поля с префиксом x- — для инструментов и договорённостей команды: x-owner: team-orders.

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