JSON-схема предназначена для описания структуры сообщения, регистрируемого модулем. Она определяет состав полей, их типы данных, а также строгую последовательность (позицию) в сериализованном массиве байт.

Основные параметры

В корне JSON-объекта указываются имена полей, значениями которых являются объекты с описанием:

  • type: Определяет тип данных поля.

  • layout: Целочисленный индекс, указывающий позицию поля в сериализованном массиве байт.

  • data: Используется для описания внутреннего содержимого составных типов. Например, если type — это array, то в data указывается тип элементов массива.

  • return: Специальное поле, содержащее описание формата возвращаемого значения.

Доступные типы данных

Система поддерживает следующие типы данных:

  • int: 64-битное целое число со знаком.

  • float: 64-битное число с плавающей запятой.

  • string: Строковые данные.

  • uuid: Уникальный идентификатор (UUID).

  • user-id: Идентификатор пользователя.

  • array: Динамический массив элементов (тип элементов уточняется в поле data).


Пример реализации

Ниже представлен пример схемы, описывающей сообщение с двумя строковыми полями и возвращаемым значением в виде массива строк.

{
    "return": {
        "type": "array",
        "data": "string"
    },
    
    "from": {
        "type": "string",
        "layout": 0
    },
    
    "to": {
        "type": "string",
        "layout": 1
    }
}