Управление меню
С помощью этих методов вы можете собрать навигацию для сайта или приложения: создать корневое меню, добавить вложенные пункты и настроить их порядок.
Gigma хранит структуру меню. Ваш сайт получает готовое дерево через API получения меню и сам решает, как его отобразить.
Отправляйте запросы на изменение с вашего сервера и передавайте Bearer сотрудника. Для создания, изменения, удаления и перемещения пунктов нужно право edit-applications.
Подготовка
Подготовьте ID приложения и Bearer сотрудника с правом edit-applications. Если пункту нужны иконка или изображение, сначала загрузите файл и сохраните его ID. Передавайте только ID файлов своего проекта: API проверяет существование avatar_id и preview_id, но не проверяет их принадлежность проекту.
Корневой пункт задаёт имя меню. Создайте его без parent_id и передайте в slug постоянное имя, например navpanel.
Gigma не проверяет уникальность slug. Перед созданием получите список пунктов приложения и убедитесь, что выбранное имя корневого меню не занято. Не назначайте этот slug дочерним пунктам: API чтения возвращает первый найденный пункт с таким значением.
POST /api/applications/12/menu_items HTTP/1.1
Host: api.gigma.ru
Authorization: Bearer <employee_token>
Content-Type: application/json
Accept: application/json
{
"name": "Главное меню",
"slug": "navpanel"
} В ответ вы получите созданный пункт. Сохраните его ID и передайте в parent_id дочернего пункта:
POST /api/applications/12/menu_items HTTP/1.1
Host: api.gigma.ru
Authorization: Bearer <employee_token>
Content-Type: application/json
Accept: application/json
{
"name": "Каталог",
"slug": "/catalog",
"parent_id": 501
} В примере 501 — ID корневого пункта из предыдущего ответа. Передавайте parent_id только пункта того же Application: API проверяет существование ID, но не принадлежность родителя приложению.
После этого сайт сможет получить всё дерево запросом GET /api/counterparty/menus/navpanel.
Что можно сделать
- создать пункт —
POST /api/applications/{id}/menu_items; - получить пункт —
GET /api/applications/{id}/menu_items/{menu_item_id}; - обновить пункт —
PUT /api/applications/{id}/menu_items/{menu_item_id}; - удалить пункт —
DELETE /api/applications/{id}/menu_items/{menu_item_id}; - получить список —
GET /api/applications/{id}/menu_items; - получить дерево для административного интерфейса —
GET /api/tables/applications/{id}/menu_items; - поднять пункт —
POST /api/applications/{id}/menu_items/{menu_item_id}/up; - опустить пункт —
POST /api/applications/{id}/menu_items/{menu_item_id}/down.