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

Транспорт и формат сообщений F1

Формат запроса и ответа, выбор среды выполнения и обработка отказов.

Процессор запускается командой compute_contract_cli --session. После приветственной строки он принимает по одному запросу JSON в строке и отвечает одной строкой на каждый. В браузере используется тот же формат — через вызов сеанса в WebAssembly.

Окно терминала
# путь внутри установленного приложения — см. «Установка F1»
"$F1_CLI" --session

Общие поля запроса

Поле Тип TypeScript Обяз. Что это
operation ComputeRequest["operation"] да Имя операции; по нему ядро выбирает, что делать.
requestedBackend "wasm" | "native-desktop" | "service-host" | null нет Где вы просите выполнить запрос.
requestId string нет Ваш номер запроса. Ядро возвращает его в ответе слово в слово — так ответ связывается с запросом по имени, а не по порядку прихода.

Ответ при успехе — ComputeSuccessEnvelope

Поле Тип TypeScript Обяз. Что это
ok true да Запрос выполнен.
requestId string нет Тот же номер, что вы прислали.
requestedBackend ComputeBackendKind да Где вы просили выполнить.
backendUsed ComputeBackendKind да Где выполнено на самом деле.
fallbackUsed boolean да true, если запрошенная среда оказалась недоступна и ядро выполнило запрос в другой.
warnings ComputeWarning[] да Предупреждения: на успех не влияют, но их стоит показать или записать.
responsiveRecalc ContractResponsiveRecalcSnapshot | null нет Состояние фонового пересчёта на момент ответа, если он включён.
payload ComputeResponsePayload да Результат самой операции; его состав у каждой операции свой.

Ответ при отказе — ComputeErrorEnvelope

Поле Тип TypeScript Обяз. Что это
ok false да Запрос отклонён; книга не изменилась.
requestId string нет Тот же номер, что вы прислали.
requestedBackend ComputeBackendKind да Где вы просили выполнить.
backendUsed ComputeBackendKind да Где выполнено на самом деле.
fallbackUsed boolean да true, если запрошенная среда оказалась недоступна и ядро выполнило запрос в другой.
warnings ComputeWarning[] да Предупреждения: на успех не влияют, но их стоит показать или записать.
code string да Код отказа — устойчивая строка, по которой отказ различают в коде.
message string да Пояснение словами.
details string | null нет Подробности, если ядру есть что добавить.
dataValidationSource ContractDataValidationSourceValidation | null нет Заполняется, когда отказ вызван проверкой данных: какое поле не принято и почему.
calculationStatus ContractCalculationStatus | null нет Состояние вычислений, если отказ с ним связан.

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

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