Пункты меню (управление)

Пункты меню — это данные навигации для вашего фронтенда. Они принадлежат приложению (/api/applications/{id}/menu_items) и авторизуются Bearer сотрудника платформы. Витрина получает готовое дерево через GET /api/counterparty/menus/{slug?} (чтение на витрине). Порядок задаётся полем order по возрастанию, вложенность — полем parent_id.

Как и другие вложенные ресурсы приложения, пункты меню находятся по переданному id и принадлежность проекту не проверяют — сверяйте id на своей стороне, особенно в скриптах. Заголовки авторизации — в соглашениях. Порядок работы из кода и связь с корнем меню — в headless-управлении.

Получение списка пунктов меню (табличное)

Метод
GET
URL
https://api.gigma.ru/api/tables/applications/{id}/menu_items
Авторизация
Bearer token
Headers
Authorization: Bearer {token}
Успешный ответ
200

Параметры запроса

  • query (string, необязательный) — поиск по названию пункта.

Ответ

Пункты возвращаются деревом: родители по возрастанию order, следом их дочерние пункты. Пункты, у которых родитель не найден, добавляются в конец списка.

Возможные ошибки

  • 404 — объекта с таким id не существует. Принадлежность приложения вашему проекту этот маршрут не проверяет: чужой существующий id отработает как свой.

Получение списка пунктов меню

Метод
GET
URL
https://api.gigma.ru/api/applications/{id}/menu_items
Авторизация
Bearer token
Headers
Authorization: Bearer {token}
Успешный ответ
200

Ответ

Все пункты меню приложения без группировки по уровням — дерево собирайте по parent_id.

Возможные ошибки

  • 404 — объекта с таким id не существует. Принадлежность приложения вашему проекту этот маршрут не проверяет: чужой существующий id отработает как свой.

Создание пункта меню

Метод
POST
URL
https://api.gigma.ru/api/applications/{id}/menu_items
Авторизация
Bearer token
Headers
Authorization: Bearer {token}
Успешный ответ
200

Параметры запроса

  • name (string, обязательный) — название пункта меню.
  • slug (string, необязательный) — slug пункта.
  • code (int, необязательный) — уникальный в проекте код пункта.
  • parent_id (int, необязательный) — ID родительского пункта.
  • order (int, необязательный, от 1) — позиция в списке.
  • avatar_id (int, необязательный) — ID файла аватара.
  • preview_id (int, необязательный) — ID файла превью.

Возможные ошибки

  • 404 — объекта с таким id не существует. Принадлежность приложения вашему проекту этот маршрут не проверяет: чужой существующий id отработает как свой.
  • 422 — тело запроса не прошло валидацию.

Получение пункта меню

Метод
GET
URL
https://api.gigma.ru/api/applications/{id}/menu_items/{menu_item_id}
Авторизация
Bearer token
Headers
Authorization: Bearer {token}
Успешный ответ
200

Ответ

HTTP 200 с пунктом меню и его связями.

Возможные ошибки

  • 404 — объекта с таким id не существует. Принадлежность приложения вашему проекту этот маршрут не проверяет: чужой существующий id отработает как свой.

Обновление пункта меню

Метод
PUT
URL
https://api.gigma.ru/api/applications/{id}/menu_items/{menu_item_id}
Авторизация
Bearer token
Headers
Authorization: Bearer {token}
Успешный ответ
200

Те же параметры, что и при создании; все необязательные.

Возможные ошибки

  • 404 — объекта с таким id не существует. Принадлежность приложения вашему проекту этот маршрут не проверяет: чужой существующий id отработает как свой.
  • 422 — тело запроса не прошло валидацию.

Удаление пункта меню

Метод
DELETE
URL
https://api.gigma.ru/api/applications/{id}/menu_items/{menu_item_id}
Авторизация
Bearer token
Headers
Authorization: Bearer {token}
Успешный ответ
200

Ответ

HTTP 200 с сообщением подтверждения. Вложенные пункты удаляются вместе с родителем — если они нужны, сначала перенесите их на другой parent_id.

Возможные ошибки

  • 404 — объекта с таким id не существует. Принадлежность приложения вашему проекту этот маршрут не проверяет: чужой существующий id отработает как свой.

Перемещение пункта меню вверх

Метод
POST
URL
https://api.gigma.ru/api/applications/{id}/menu_items/{menu_item_id}/up
Авторизация
Bearer token
Headers
Authorization: Bearer {token}
Успешный ответ
200

Уменьшает order на 1, не опускаясь ниже 1. Список сортируется по возрастанию order, поэтому пункт поднимается. Возвращает обновлённый пункт меню.

Возможные ошибки

  • 404 — объекта с таким id не существует. Принадлежность приложения вашему проекту этот маршрут не проверяет: чужой существующий id отработает как свой.
  • 422 — тело запроса не прошло валидацию.

Перемещение пункта меню вниз

Метод
POST
URL
https://api.gigma.ru/api/applications/{id}/menu_items/{menu_item_id}/down
Авторизация
Bearer token
Headers
Authorization: Bearer {token}
Успешный ответ
200

Увеличивает order на 1 — пункт опускается, но не ниже последнего пункта того же уровня. Возвращает обновлённый пункт меню.

Возможные ошибки

  • 404 — объекта с таким id не существует. Принадлежность приложения вашему проекту этот маршрут не проверяет: чужой существующий id отработает как свой.
  • 422 — тело запроса не прошло валидацию.