Определение EventSchemaSet

В этой статье представлена разбивка структуры определения для элементов EventSchemaSet.

Части определения

В этой таблице перечислены части определения EventSchemaSet.

Путь к части определения type Обязательно Description
EventSchemaSetDefinition.json EventSchemaSet (JSON) true Описывает топологию элемента EventSchemaSet.

EventSchemaSet

Структура элемента EventSchemaSet

Описывает коллекцию метаданных событий и полезных данных, моделируемых с помощью схем.

Имя Тип Обязательно Description
eventTypes EventType[] false Коллекция сообщений, хранящихся в каталоге.
schemas Схема[] false Коллекция форматов, используемых для представления сообщений, хранящихся в каталоге.

Структура элемента EventType

Описывает метаданные события, используемые для обмена данными между исходными, eventstream и целевыми элементами.

Имя Тип Обязательно Description
id String true Уникальный идентификатор eventType
description String false Описание eventType
eventTypeCategory String false Категория eventType. Допустимые значения: EventType или BusinessEventType
format String true Формат сериализации.
envelopeMetadata Строка словаря<, объект> false Коллекция сообщений, хранящихся в каталоге.
schemaUrl струна false Url-адрес схемыGroup и schema. SchemaUrl и Schema являются взаимоисключающими. Если схема определена в EventType, то SchemaUrl не может быть включена.
schemaFormat струна false Формат схемы. Ex: JsonSchema
schema струна false Схема EventType. SchemaUrl и Schema являются взаимоисключающими. Если схема определена в EventType, то SchemaUrl не может быть включена.
protocol струна false Возвращает или задает протокол в соответствии с https://github.com/xregistry/spec/blob/main/message/spec.md#http11-http2-http3-protocols
protocolOptions объект false Возвращает или задает параметры протокола в соответствии с https://github.com/xregistry/spec/blob/main/message/spec.md#http11-http2-http3-protocols

Структура элемента схемы

Элемент схемы группирует все версии объявления схемы AVRO.

Имя Тип Обязательно Description
id струна true Уникальный идентификатор схемы
description струна false Описание схемы
format струна true Формат схемы. Ex: JsonSchema
versions Массив false Коллекция различных итераций схемы. Новая версия создается при предоставлении новой схемы элементу EventType

Структура элемента SchemaVersion

Описание полезных данных события с помощью поддерживаемых версий AVRO. Дополнительные сведения см. в спецификации AVRO .

Имя Тип Обязательно Description
id струна true Уникальный идентификатор SchemaVersion
description струна false Описание schemaVersion
format струна true Формат схемы. Ex: JsonSchema
schema струна false Связь схемы с версией схемы.

Пример EventSchemaSet

{
  "eventTypes": [
    {
      "id": "BicycleSchema",
      "description": "V1 Schema for Bicycles ",
      "format": "CloudEvents/1.0",
      "envelopeMetadata": {
        "id": {
          "type": "string",
          "required": true
        },
        "type": {
          "type": "string",
          "required": true,
          "value": "BicycleSchema"
        },
        "source": {
          "type": "string",
          "required": true
        },
        "specversion": {
          "type": "string",
          "required": true
        }
      },
      "schemaUrl": "#/schemas/BicycleSchema",
      "schemaFormat": "Avro/1.12.0"
    }
  ],
  "schemas": [
    {
      "id": "BicycleSchema",
      "format": "Avro/1.12.0",
      "versions": [
        {
          "id": "v1",
          "format": "Avro/1.12.0",
          "schema": "{\n \"fields\": [\n  {\n   \"name\": \"manufacturer\",\n   \"type\": \"string\",\n   \"doc\": \"company name\"\n  }\n ],\n \"type\": \"record\",\n \"name\": \"BicycleSchema\"\n}"
        }
      ]
    }
  ]
}

Примеры EventType

С предоставленной схемой:

 {
      "id": "BicycleSchema",
      "description": "V1 Schema for Bicycles ",
      "format": "CloudEvents/1.0",
      "envelopeMetadata": {
        "id": {
          "type": "string",
          "required": true
        },
        "type": {
          "type": "string",
          "required": true,
          "value": "BicycleSchema"
        },
        "source": {
          "type": "string",
          "required": true
        },
        "specversion": {
          "type": "string",
          "required": true
        }
      },
      "schema": "{\n \"fields\": [\n  {\n   \"name\": \"manufacturer\",\n   \"type\": \"string\",\n   \"doc\": \"company name\"\n  }\n ],\n \"type\": \"record\",\n \"name\": \"BicycleSchema\"\n}",
      "schemaFormat": "Avro/1.12.0"
    }

Без предоставленной схемы:

{
      "id": "BicycleSchema",
      "description": "V1 Schema for Bicycles ",
      "format": "CloudEvents/1.0",
      "envelopeMetadata": {
        "id": {
          "type": "string",
          "required": true
        },
        "type": {
          "type": "string",
          "required": true,
          "value": "BicycleSchema"
        },
        "source": {
          "type": "string",
          "required": true
        },
        "specversion": {
          "type": "string",
          "required": true
        }
      },
      "schemaUrl": "#/schemas/BicycleSchema",
      "schemaFormat": "Avro/1.12.0"
    }

Пример схемы

{
      "id": "BicycleSchema",
      "format": "Avro/1.12.0",
      "versions": [
        {
          "id": "v1",
          "format": "Avro/1.12.0",
          "schema": "{\n \"fields\": [\n  {\n   \"name\": \"manufacturer\",\n   \"type\": \"string\",\n   \"doc\": \"company name\"\n  }\n ],\n \"type\": \"record\",\n \"name\": \"BicycleSchema\"\n}"
        }
      ]
}

Пример SchemaVersion

{
    "id": "v1",
    "format": "Avro/1.12.0",
    "schema": "{\n \"fields\": [\n  {\n   \"name\": \"manufacturer\",\n   \"type\": \"string\",\n   \"doc\": \"company name\"\n  }\n ],\n \"type\": \"record\",\n \"name\": \"BicycleSchema\"\n}"
}