DELETE /api/collections/:id/layers/:layerId — Удалить слой
Сгенерировано из матриц + кода. Правки вносить в источники (
docs/matrices/,server/routes/), не здесь.
| Поле | Значение |
|---|---|
| HTTP | DELETE /api/collections/:id/layers/:layerId |
| Auth | — |
| Scope токена | read_write |
| PG-функции | api.delete_collection_layer |
| Таблицы | — |
| SRM | — (вне SRM, документировано по коду) |
| RP (права) | — |
| Файл роута | server/routes/collections.js |
| Статус | по коду (вне SRM) |
Аргументы запроса (best-effort из хендлера; путь-параметры опущены):
аргументов не обнаружено (подтвердить вручную по server/routes/collections.js)
Коды ответов/ошибок (из хендлера): 200 — уточнить причины вручную
Для человека
Как открыть: «Коллекции» → откройте коллекцию → в редакторе коллекции выберите слой и удалите его (через меню «…» у слоя в панели слоёв).
Удаляет слой из коллекции. Удалить можно только пустой слой: если в нём остались блоки, удаление отклоняется (400) — сначала перенесите блоки на другой слой или удалите их. Это защищает от случайного удаления слоя вместе с его содержимым.
Слой должен существовать (иначе 404).
Кто может. Администратор организации-владельца (и администратор площадки).
Для агента
Запись — нужен токен со scope read_write (см. Конвенции). Route-middleware нет; права досматривает PG-функция: удалять содержимое коллекции может org-admin владеющей организации (или site-admin).
Тела нет — слой адресуется ключом из пути (:layerId) в составе коллекции (:id). Удаление защищено: если хотя бы один блок коллекции ссылается на этот слой (layer_id), функция возвращает LAYER_IN_USE (400) и ничего не удаляет. Несуществующий слой → LAYER_NOT_FOUND (404).
Пример запроса:
curl -X DELETE https://specbuilder.vnimanie.ai/api/collections/0660b640-86b0-42c5-8e22-93973848bb56/layers/requirements \ -H "Authorization: Bearer tak_..."Ответ 200:
{ "ok": true }Ответ 400 (на слой ещё ссылаются блоки):
{ "error": "LAYER_IN_USE: 4 blocks reference this layer" }Cookie-клиент получает JSON; Markdown-зеркало — только токену с Accept: text/markdown (server/agent/negotiate.js).