GET /api/spaces/:spaceId — Получить спейс
Сгенерировано из матриц + кода. Правки вносить в источники (
docs/matrices/,server/routes/), не здесь.
| Поле | Значение |
|---|---|
| HTTP | GET /api/spaces/:spaceId |
| Auth | requireSpaceAccess — requireSpaceAccess |
| Scope токена | read |
| PG-функции | api.get_space |
| Таблицы | space |
| SRM | SRM-169 |
| RP (права) | — |
| Файл роута | server/routes/spaces.js |
| Статус | done |
Аргументы запроса (best-effort из хендлера; путь-параметры опущены):
аргументов не обнаружено (подтвердить вручную по server/routes/spaces.js)
Коды ответов/ошибок (из хендлера): 404 (+ 200) — уточнить причины вручную
Для человека
Как открыть: выберите спейс в списке (вкладка «Спейсы» или переключатель спейсов слева) → откроется его карточка/настройки. Этот метод и наполняет шапку настроек данными о спейсе.
Возвращает карточку одного спейса: тип (личный / командный / гостевой), организация, коллекция-основа, владелец, описание и счётчики — сколько в спейсе специальностей, блоков, слоёв, участников и живых проектов. Это сводка по спейсу, а не его содержимое: сами слои/блоки/специальности читаются отдельными методами.
Кто может. Любой, у кого есть доступ к спейсу: участник, наблюдатель, администратор организации, владелец личного спейса. Гостевой спейс открыт всем (включая аноним). Если доступа нет — 403; если спейса нет — 404.
Для агента
Чтение — токен со scope read. Маршрут защищён requireSpaceAccess: токен увидит спейс, только если его владелец имеет доступ (участник / наблюдатель / org_admin / владелец личного), иначе 403. Гостевой спейс доступен и без привязки.
Путь:
| Параметр | Где | Назначение |
|---|---|---|
id | path | UUID спейса |
Это единственный метод домена с Markdown-зеркалом: хендлер отдаёт ресурс через sendResource (server/agent/negotiate.js), поэтому работает согласование формата, ETag и блок ## Actions.
Запрос JSON (по умолчанию):
curl https://specbuilder.vnimanie.ai/api/spaces/f9e8d7c6-1234-4abc-9def-0123456789ab \ -H "Authorization: Bearer tak_..."Ответ 200 (JSON):
{ "id": "f9e8d7c6-1234-4abc-9def-0123456789ab", "type": "team", "org_id": "0011aabb-...", "org_name": "ООО «Будущее»", "org_slug": "buduschee", "collection_id": "0660b640-86b0-42c5-8e22-93973848bb56", "collection_name": "ML/AI Development", "collection_code": "ml-ai-dev", "owner_id": null, "name": "Маркетинг", "slug": "marketing", "description": "Спейс отдела маркетинга", "created_at": "2026-05-01T10:00:00.000Z", "updated_at": "2026-06-12T08:30:00.000Z", "specialty_count": 9, "block_count": 26, "layer_count": 6, "member_count": 5, "project_count": 7}Запрос Markdown-зеркала (Accept: text/markdown или ?format=md):
curl https://specbuilder.vnimanie.ai/api/spaces/f9e8d7c6-1234-4abc-9def-0123456789ab \ -H "Authorization: Bearer tak_..." \ -H "Accept: text/markdown"# space f9e8d7c6-1234-4abc-9def-0123456789abversion: 2026-06-12T08:30:00.000Zupdated: 2026-06-12T08:30:00.000Z
name: Маркетингtype: teamcollection: ML/AI Development
## Actions- GET /api/spaces/f9e8d7c6-1234-4abc-9def-0123456789ab — read-space — returns this space overlayЗеркало выводит ровно три поля (name, type, collection) — поле-билдер в хендлере (fields: (j) => …) берёт их из того же JSON, что и UI. Блок ## Actions для read-токена содержит только навигацию: один read-аффорданс read-space (server/agent/affordances.js).
ETag/304. В ответе есть ETag (на базе updated_at). Повтор с If-None-Match: "<etag>" → 304 Not Modified без тела — спейс не менялся, токены экономятся.