Compare Object
const url = 'https://api.cloud.agentums.ru/v1/objects/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/compare';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"other_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","version":1}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.cloud.agentums.ru/v1/objects/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/compare \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "other_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "version": 1 }'Что изменилось: файл против другого файла ИЛИ против своей прошлой версии.
Сравнение идёт по абзацам; регистр и лишние пробелы правкой не считаются (см.
services/compare). Файл в запросе — ПРАВАЯ сторона («что стало»), источник из тела —
левая («что было»), поэтому «добавлено» читается относительно текущего состояния файла.
Без тела берётся последняя ревизия — частый вопрос «что изменилось с прошлого раза».
other_id проходит ту же проверку владения и тот же PIN скрытой зоны, что и сам файл:
иначе сравнение стало бы обходным чтением чужого (и скрытого) содержимого.
404 — файла/версии нет либо истории ещё нет. 422 — заданы оба источника разом, или сравнивать нечего (нераспознанный скан, картинка, файл ещё в обработке).
Authorizations
Заголовок раздела «Authorizations»Parameters
Заголовок раздела «Parameters»Path Parameters
Заголовок раздела «Path Parameters»Header Parameters
Заголовок раздела «Header Parameters»Request Bodyrequired
Заголовок раздела «Request Bodyrequired»С чем сравнивать файл. Ровно ОДИН источник: другой файл либо своя прошлая версия.
Оба поля разом — ошибка клиента, а не повод молча выбрать один: «сравни с версией 3» и «сравни с этим файлом» — разные вопросы, и угадывать, какой из них имелся в виду, значит показать человеку не тот диф. Ни одного — берём последнюю ревизию (частый случай «что изменилось с прошлого раза»).
Examplegenerated
{ "other_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "version": 1}Responses
Заголовок раздела «Responses»Successful Response
Результат сравнения: расхождения + сводка по ВСЕМУ тексту.
blocks обрезается потолком показа, счётчики — нет: «изменено 3» при трёх сотнях
правок ввело бы в заблуждение сильнее, чем длинный список. truncated про это и говорит.
similarity — доля совпавших абзацев (0..1).
object
Одно расхождение. Номера абзацев 1-based, 0 — «на той стороне такого абзаца нет».
object
Example
{ "added": 0, "blocks": [ { "left": "", "left_no": 0, "op": "added", "right": "", "right_no": 0 } ], "changed": 0, "identical": false, "removed": 0, "similarity": 0, "truncated": false, "unchanged": 0}Validation Error
object
object
object
Examplegenerated
{ "detail": [ { "ctx": {}, "input": "example", "loc": [ "example" ], "msg": "example", "type": "example" } ]}