Перейти к содержимому
FastOffice

Объекты запросов и ответов

Минимальная последовательность команд, обязательные и рекомендуемые поля запроса, формат ответа и обработка ошибок.

Каждое сообщение — обычный 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":"..."}

Ассистент документации

Ответ собран из документации и может быть неточным — сверяйтесь с источниками.