Объекты запросов и ответов
Минимальная последовательность команд, обязательные и рекомендуемые поля запроса, формат ответа и обработка ошибок.
Каждое сообщение — обычный JSON-объект. Поле id выбираете вы, ядро возвращает его без изменения. Поэтому ответы можно сопоставлять с запросами даже при параллельной работе.
Минимальная последовательность
Заголовок раздела «Минимальная последовательность»{"id":"ping-1","cmd":"ping"}{"id":"open-1","cmd":"open","path":"/absolute/input.docx","document_id":"my-document"}{"id":"model-1","cmd":"model"}{"id":"insert-1","cmd":"mutate","operation_kind":"insert-text","paragraph_index":0,"offset":0,"text":"Привет из API. ","document_id":"my-document","transaction_order":1,"transition_kind":"api-insert"}{"id":"save-1","cmd":"save","path":"/absolute/output.docx"}{"id":"shutdown-1","cmd":"shutdown"}Обязательные и рекомендуемые поля
Заголовок раздела «Обязательные и рекомендуемые поля»| Поле | Назначение | Правило |
|---|---|---|
id |
Корреляция запроса и ответа | Необязательно. Любое значение JSON — строка, число. Возвращается без изменений, поэтому должно быть уникальным среди запросов, ответ на которые ещё не получен |
cmd |
Имя команды сеанса | Одно из имён, перечисленных в поле supported_commands приветственного сообщения |
path |
Входной или выходной файл | Только абсолютный путь |
document_id |
Стабильная идентичность документа | Передавайте в open и в правках |
transaction_order |
Порядок изменений | Монотонно растёт: 1, 2, 3… |
transition_kind |
Причина или тип перехода | Короткая диагностическая метка |
operation_kind |
Семантическая операция | Обязательно для mutate. Например insert-text |
paragraph_index |
Номер абзаца, к которому относится правка | Обязательно для mutate. Нумерация с нуля |
Формат ответа
Заголовок раздела «Формат ответа»Успех:
{"id":"ping-1","ok":true,"cmd":"ping","elapsed_ms":0,"result":{"pong":true}}Отказ:
{"id":"bad-1","ok":false,"cmd":"mutate","elapsed_ms":0,"error":"..."}