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

GET /api/projects/:id/doc-content/:nodeId/history/:version — Версия блока из истории

Сгенерировано из матриц + кода. Правки вносить в источники (docs/matrices/, server/routes/), не здесь.

ПолеЗначение
HTTPGET /api/projects/:id/doc-content/:nodeId/history/:version
AuthoptionalAuth, requireProjectAccess — гость + авторизованный, доступ к проекту (read/write)
Scope токенаread
PG-функцииapi.get_block_doc_version
Таблицыblock_doc_content_history
SRMSRM-203
RP (права)RP-115
Файл роутаserver/routes/projects.js
Статусdone

Аргументы запроса (best-effort из хендлера; путь-параметры опущены):

аргументов не обнаружено (подтвердить вручную по server/routes/projects.js)

Коды ответов/ошибок (из хендлера): 400, 404, 500 (+ 200) — уточнить причины вручную

Для человека

Как открыть: откройте проект → вид «Дизайн-документ» → блок → стрелками навигатора версий (← v3 →) под блоком пролистайте к нужному номеру. При переходе на конкретную версию её текст подставляется в блок для предпросмотра.

Возвращает содержимое одной версии блока: сам текст плюс метаданные — номер версии, тип правки, автор и дата. В отличие от списка истории (там только метаданные), здесь приходит полный текст — тот самый, что подставляется в предпросмотр при перелистывании версий и который можно затем восстановить как текущий.

Версия задаётся номером. Запросите несуществующий номер — получите ошибку «версия не найдена»; номер меньше единицы — ошибку валидации.

Кто может. Те же, кто видит историю версий: сотрудник, менеджер спейса, наблюдатель и администратор организации с доступом к проекту. Гость и администратор платформы версии не открывают (RP-115).

Для агента

Чтение — токен со scope read (см. Конвенции). Доступ к проекту проверяется через requireProjectAccess.

Путь-параметры:

ПараметрНазначение
:idUUID проекта
:nodeIdid блока (ноды)
:versionномер версии (целое ≥ 1); берётся из списка истории

Тела запроса нет. Номер версии — целое число от 1 и выше; нечисло или < 1400, отсутствующая версия → 404.

Пример запроса:

Окно терминала
curl https://specbuilder.vnimanie.ai/api/projects/{id}/doc-content/{nodeId}/history/2 \
-H "Authorization: Bearer tak_..."

Ответ 200 — одна версия с полным текстом:

{
"version": 2,
"content": "## Сервис аналитики\n\nМодуль собирает события...",
"edit_type": "manual",
"edited_by": "f9e8d7c6-...",
"edited_by_name": "Иван П.",
"created_at": "2026-06-19T09:12:00Z"
}

content — полный Markdown-текст блока на момент этой версии. Чтобы сделать её текущей, передайте этот же номер в восстановление.

Формат. Только JSON. Markdown-зеркала и ETag/304 у версии нет (текст лежит внутри поля content JSON-объекта); Accept: text/markdown / ?format=md игнорируются. Блок affordances не строится (server/agent/affordances.js).

Связанные