GET /api/collections/:id — Получить коллекцию
Сгенерировано из матриц + кода. Правки вносить в источники (
docs/matrices/,server/routes/), не здесь.
| Поле | Значение |
|---|---|
| HTTP | GET /api/collections/:id |
| Auth | requireAuth — только авторизованный |
| 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 (экономия токенов на больших коллекциях).