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

Как устроен сеанс API

Как выглядит разговор с процессором, что сохранять на каждом шаге и что делать с отказом.

Процессор compute_contract_cli запускается с ключом --session. Первой строкой он сообщает о готовности: одна строка JSON в стандартный вывод. Дальше разговор идёт по строкам — вы пишете одну строку JSON с запросом ему на вход, он отвечает одной строкой JSON на выходе.

const child = spawn(binary, ["--session"], {
stdio: ["pipe", "pipe", "inherit"],
});
child.stdin.write(JSON.stringify(request) + "\n");
Шаг Что сохранять Почему
open_workbook_subset payload.subsetId Идентифицирует книгу в этом процессе
open_workbook_subset payload.activeSheet.path Ключ листа: именно его ждут операции правки, а не видимое имя
apply_cell_edits payload.workbookHistory.revision Новая принятая ревизия
каждый ответ ok / code / payload У каждого отказа есть свой код; показывать успех при ok: false нельзя
save_workbook_subset destinationUri Полный адрес сохранённого файла, начиная с file://
if (!response.ok) {
throw new Error(response.code + ": " + JSON.stringify(response));
}

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

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