GET /api/projects/:id/doc-content/:nodeId/history/:version — Версия блока из истории
Сгенерировано из матриц + кода. Правки вносить в источники (
docs/matrices/,server/routes/), не здесь.
| Поле | Значение |
|---|---|
| HTTP | GET /api/projects/:id/doc-content/:nodeId/history/:version |
| Auth | optionalAuth, requireProjectAccess — гость + авторизованный, доступ к проекту (read/write) |
| Scope токена | read |
| PG-функции | api.get_block_doc_version |
| Таблицы | block_doc_content_history |
| SRM | SRM-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.
Путь-параметры:
| Параметр | Назначение |
|---|---|
:id | UUID проекта |
:nodeId | id блока (ноды) |
:version | номер версии (целое ≥ 1); берётся из списка истории |
Тела запроса нет. Номер версии — целое число от 1 и выше; нечисло или < 1 → 400, отсутствующая версия → 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).