API Schema Registry (REST)#

Schema Registry поддерживает следующие REST-запросы:

CONFIG:

Адрес

Acl operation

Метод

ВХОД

ВЫХОД

Описание

/config

CONFIG_READ

GET

-

{"compatibilityLevel": "BACKWARD"}

Возвращает глобальный режим совместимости

/config

CONFIG_WRITE

PUT

{"compatibility": "BACKWARD"}

{"compatibility": "BACKWARD"}

Устанавливает глобальный режим совместимости. Возвращает режим совместимости

/config/{subject}

CONFIG_READ

GET

-

{"compatibilityLevel": "BACKWARD"}

Возвращает режим совместимости субъекта

/config/{subject}

CONFIG_WRITE

PUT

{"compatibility": "BACKWARD"}

{"compatibility": "BACKWARD"}

Устанавливает глобальный режим совместимости. Возвращает режим совместимости

MODE:

Адрес

Acl operation

Метод

ВХОД

ВЫХОД

Описание

/mode

CONFIG_READ

GET

-

{"mode": "READWRITE"}

Возвращает глобальный режим редактирования

/mode

CONFIG_WRITE

PUT

{"mode": "READONLY"}

{"mode": "READONLY"}

Устанавливает глобальный режим редактирования. Возвращает режим редактирования

/mode/{subject}

CONFIG_READ

GET

-

{"mode": "READWRITE"}

Возвращает режим редактирования субъекта

/mode/{subject}

CONFIG_WRITE

PUT

{"mode": "READONLY"}

{"mode": "READONLY"}

Устанавливает режим редактирования субъекта. Возвращает режим редактирования

SUBJECT:

Адрес

Acl operation

Метод

ВХОД

ВЫХОД

Описание

/subjects

SCHEMA_READ

GET

-

["subject1", "subject2"]

Возвращает список субъектов

/subjects/{subject}/versions

SCHEMA_READ

GET

-

[1, 2, 3]

Возвращает список версий схем для субъекта

/subjects/{subject}/versions/{version}

SCHEMA_READ

GET

-

{ "id": 1, "version": 2, "subject": "subj", "schemaType": "AVRO", "schema": "\{ \"type\": \"string\" \}" }

Возвращает версию схемы для субъекта

/subjects/{subject}/versions/{version}/schema

SCHEMA_READ

GET

-

{ "type": "string" }

Возвращает схему для субъекта

/subjects/{subject}/versions/latest

SCHEMA_READ

GET

-

{ "id": 1, "version": 2, "subject": "subj", "schemaType": "AVRO", "schema": "\{ \"type\": \"string\" \}" }

Возвращает последнюю версию схемы для субъекта

/subjects/{subject}/versions/latest/schema

SCHEMA_READ

GET

-

{ "type": "string" }

Возвращает последнюю схему для субъекта

/subjects/{subject}

SCHEMA_WRITE

POST

{ "schemaType": "AVRO", "schema": "\{ \"type\": \"string\" \}" }

{ "id": 1, "version": 2, "subject": "subj", "schemaType": "AVRO", "schema": "\{ \"type\": \"string\" \}" }

Проверяет, что переданная схема уже зарегистрирована для субъекта. Если схема найдена, она возвращается

/subjects/{subject}/versions

SCHEMA_WRITE

POST

{ "schemaType": "AVRO", "schema": "\{ \"type\": \"string\" \}" }

{ "id": 1, "version": 2, "subject": "subj", "schemaType": "AVRO", "schema": "\{ \"type\": \"string\" \}" }

Создает новую версию схемы для субъекта

/subjects/{subject}

SCHEMA_DELETE

DELETE

-

[1, 2, 3]

Удаляет все схемы субъекта

/subjects/{subject}/versions/{version}

SCHEMA_DELETE

DELETE

-

1

Удаляет версию схемы субъекта

SCHEMA:

Адрес

Acl operation

Метод

ВХОД

ВЫХОД

Описание

/schemas/types

SCHEMA_READ

GET

-

[ "AVRO", "JSON" ]

Возвращает доступные типы схем

/schemas/ids/{id}

SCHEMA_READ

GET

-

{ "id": 1, "version": 2, "subject": "subj", "schemaType": "AVRO", "schema": "\{ \"type\": \"string\" \}" }

Возвращает схему по идентификатору

/schemas/ids/{id}/versions

SCHEMA_READ

GET

-

[{"subject": "subj1", "version": "1"}, {"subject": "subj1", "version": "2"}]

Возвращает список версий схемы

COMPATIBILITY:

Адрес

Acl operation

Метод

ВХОД

ВЫХОД

Описание

/compatibility/subjects/{subject}/versions/{version}

SCHEMA_READ

POST

{ "schemaType": "AVRO", "schema": "\{ \"type\": \"string\" \}" }

{ "is_compatible": "true" }

Проверяет совместимость схемы из параметров с текущей

ACL:

Адрес

Acl operation

Метод

ВХОД

ВЫХОД

Описание

/acl

ACL_ACCESS

GET

-

[ { "op": "ACL_ACCESS", "allow": "Role:ADMIN", "subject": null, "subjectPatternType": null, "tombstone": false }]

Список ACL правил

/acl

ACL_ACCESS

POST

{ "op": "ACL_ACCESS", "allow": "Role:ADMIN", "subject": null, "subjectPatternType": null, "tombstone": false }

-

Создание нового правила

/acl/delete

ACL_ACCESS

POST

{ "op": "ACL_ACCESS", "allow": "Role:ADMIN", "subject": null, "subjectPatternType": null, "tombstone": false }

-

Удаление правила

CLEANUP

Адрес

Acl operation

Метод

ВХОД

ВЫХОД

Описание

/cleanup/by/retention

SCHEMA_CLEANUP

DELETE

{"retentionMs": "long"}

[id1, id2,...,idN]

Удалить схемы, чей возраст превышает переданный retentionMs миллисекунд (по аналогии с настройкой топика Kafka retention.ms)

/cleanup/by/timestamp

SCHEMA_CLEANUP

DELETE

{"oldestTimestamp": "long"}

[id1, id2,...,idN]

Удалить все схемы, созданные до временной метки oldestTimestamp

/cleanup/by/latest/version

SCHEMA_CLEANUP

DELETE

-

[id1, id2,...,idN]

Удалить все схемы, кроме последней в каждом субъекте

MUTABILITY:

Адрес

Acl operation

Метод

ВХОД

ВЫХОД

Описание

/mutability

MUTABILITY_READ

GET

-

{ "mutable": "true" }

Возвращает значение настройки изменяемости реестра

/mutability

MUTABILITY_WRITE

PUT

{ "mutable": "false" }

{ "mutable": "false" }

Задает настройку изменяемости реестра. В IMMUTABLE режиме запрещены любые операции на запись, кроме изменения настройки изменяемости

Переменные:

  • {subject} — имя субъекта;

  • {id} — идентификатор схемы;

  • {version} — версия схемы.

Значения compatibility:

  • BACKWARD;

  • BACKWARD_TRANSITIVE;

  • FORWARD;

  • FORWARD_TRANSITIVE;

  • FULL;

  • FULL_TRANSITIVE;

  • NONE.

Значения mode:

  • READONLY;

  • READWRITE.