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

GET /api/collections/:id — Получить коллекцию

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

ПолеЗначение
HTTPGET /api/collections/:id
AuthrequireAuth — только авторизованный
Scope токенаread
PG-функцииapi.get_collection, api.has_collection_admin_access, api.has_collection_use_access
Таблицы
SRM— (вне SRM, документировано по коду)
RP (права)
Файл роутаserver/routes/collections.js
Статуспо коду (вне SRM)

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

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

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

Для человека

Как открыть: в навигации «Коллекции» → найдите нужную карточку → откройте её. Откроется редактор коллекции.

Отдаёт коллекцию целиком: слои, блоки, специальности (роли) и связи между блоками — всё, что складывается в граф-шаблон будущих проектов. Это та самая «начинка» карточки, которую видно в редакторе.

Кто видит. Открыть коллекцию может администратор организации, которой она доступна (своя, публичная, дефолтная или выданная). Администратор платформы видит любую. Если коллекция вам недоступна — ответ 403; если её нет — 404.

Для агента

Чтение — достаточно токена со scope read (см. Конвенции). Роут под requireAuth: нужен валидный токен. Доступ к конкретной коллекции досматривается внутри (публичная/дефолтная/коллекция организации владельца/выданная) — чужую приватную коллекцию вернёт 403.

Путь-параметр :id — UUID коллекции. Тела у запроса нет.

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

Окно терминала
curl https://specbuilder.vnimanie.ai/api/collections/0660b640-86b0-42c5-8e22-93973848bb56 \
-H "Authorization: Bearer tak_..." \
-H "Accept: text/markdown"

Ответ 200:

{
"id": "0660b640-86b0-42c5-8e22-93973848bb56",
"code": "ml-dev", "name": "ML/AI Development",
"layers": [{ "id": "RESEARCH", "display_name": "Исследование" }],
"specialties": [{ "id": "ml_engineer", "name": "ML-инженер" }],
"blocks": [{ "id": "data_collection", "name": "Сбор данных", "layer_id": "RESEARCH" }],
"edges": [{ "source_id": "data_collection", "target_id": "model_training" }]
}

Cookie-клиент всегда получает JSON; Markdown-зеркало отдаётся только токену с Accept: text/markdown (server/agent/negotiate.js). У ресурса есть ETag — повтор с If-None-Match вернёт 304 (экономия токенов на больших коллекциях).

Связанные