API элементов навигации
Эндпоинты для управления элементами навигационной панели (меню) в системе.
Получение списка элементов навигации
Получение полного списка элементов навигации.
Запрос
GET /api/navbar-itemsЗаголовки
| Название | Тип | Описание |
|---|---|---|
| X-API-Key | string | Обязательный. API ключ |
Параметры запроса
| Название | Тип | Описание |
|---|---|---|
| page | integer | Необязательный. Номер страницы (по умолчанию: 1) |
| per_page | integer | Необязательный. Количество записей на странице (по умолчанию: 20) |
Ответ
{
"navbar_items": [
{
"id": 1,
"title": "Главная",
"url": "/",
"new_tab": false,
"icon": "home",
"position": 0,
"visible_only_for_guests": false,
"visible_only_for_logged_in": false,
"visibility": "all",
"parent_id": null
},
{
"id": 2,
"title": "О нас",
"url": "/about",
"new_tab": false,
"icon": "info",
"position": 1,
"visible_only_for_guests": false,
"visible_only_for_logged_in": false,
"visibility": "all",
"parent_id": null
}
]
}Поля ответа
| Поле | Тип | Описание |
|---|---|---|
| navbar_items | array | Массив элементов навигации |
| id | integer | ID элемента навигации |
| title | string | Заголовок элемента |
| url | string | URL-адрес элемента (может быть null) |
| new_tab | boolean | Открывать в новой вкладке |
| icon | string | Иконка элемента (может быть null) |
| position | integer | Позиция элемента в навигации |
| visible_only_for_guests | boolean | Видимость только для гостей |
| visible_only_for_logged_in | boolean | Видимость только для авторизованных пользователей |
| visibility | string | Видимость (all, desktop, mobile) |
| parent_id | integer | ID родительского элемента (может быть null) |
Коды ответов
| Код | Описание |
|---|---|
| 200 | Успешный запрос |
| 401 | Неверный API ключ или отсутствует |
| 403 | Недостаточно прав для выполнения запроса |
Получение данных элемента навигации
Получение детальной информации о конкретном элементе навигации.
Запрос
GET /api/navbar-items/{id}Параметры пути
| Название | Тип | Описание |
|---|---|---|
| id | integer | ID элемента навигации |
Заголовки
| Название | Тип | Описание |
|---|---|---|
| X-API-Key | string | Обязательный. API ключ |
Ответ
{
"navbar_item": {
"id": 1,
"title": "Главная",
"url": "/",
"new_tab": false,
"icon": "home",
"position": 0,
"visible_only_for_guests": false,
"visible_only_for_logged_in": false,
"visibility": "all",
"parent_id": null,
"roles": [
{
"id": 1,
"name": "admin"
},
{
"id": 2,
"name": "user"
}
],
"children": [
{
"id": 3,
"title": "Подстраница",
"url": "/subpage",
"new_tab": false,
"icon": null,
"position": 0,
"visible_only_for_guests": false,
"visible_only_for_logged_in": false,
"visibility": "all",
"parent_id": 1
}
]
}
}Поля ответа
| Поле | Тип | Описание |
|---|---|---|
| navbar_item | object | Объект элемента навигации |
| id | integer | ID элемента навигации |
| title | string | Заголовок элемента |
| url | string | URL-адрес элемента (может быть null) |
| new_tab | boolean | Открывать в новой вкладке |
| icon | string | Иконка элемента (может быть null) |
| position | integer | Позиция элемента в навигации |
| visible_only_for_guests | boolean | Видимость только для гостей |
| visible_only_for_logged_in | boolean | Видимость только для авторизованных пользователей |
| visibility | string | Видимость (all, desktop, mobile) |
| parent_id | integer | ID родительского элемента (может быть null) |
| roles | array | Массив ролей, для которых доступен этот элемент |
| children | array | Массив дочерних элементов навигации |
Коды ответов
| Код | Описание |
|---|---|
| 200 | Успешный запрос |
| 401 | Неверный API ключ или отсутствует |
| 403 | Недостаточно прав для выполнения запроса |
| 404 | Элемент навигации не найден |
Создание элемента навигации
Создание нового элемента навигации в системе.
Запрос
POST /api/navbar-itemsЗаголовки
| Название | Тип | Описание |
|---|---|---|
| X-API-Key | string | Обязательный. API ключ |
| Content-Type | string | Обязательный. application/json |
Тело запроса
{
"title": "Новый элемент",
"url": "/new-page",
"new_tab": false,
"icon": "star",
"position": 2,
"visible_only_for_guests": false,
"visible_only_for_logged_in": false,
"visibility": "all",
"parent_id": null
}Параметры тела запроса
| Название | Тип | Описание |
|---|---|---|
| title | string | Обязательный. Заголовок элемента |
| url | string | Необязательный. URL-адрес элемента |
| new_tab | boolean | Необязательный. Открывать в новой вкладке |
| icon | string | Необязательный. Иконка элемента |
| position | integer | Необязательный. Позиция элемента (по умолчанию: 0) |
| visible_only_for_guests | boolean | Необязательный. Видимость только для гостей |
| visible_only_for_logged_in | boolean | Необязательный. Видимость только для авторизованных |
| visibility | string | Необязательный. Видимость (all, desktop, mobile) |
| parent_id | integer | Необязательный. ID родительского элемента |
Ответ
{
"message": "Navbar item created successfully",
"navbar_item": {
"id": 4,
"title": "Новый элемент",
"url": "/new-page",
"new_tab": false,
"icon": "star",
"position": 2,
"visible_only_for_guests": false,
"visible_only_for_logged_in": false,
"visibility": "all",
"parent_id": null
}
}Коды ответов
| Код | Описание |
|---|---|
| 201 | Элемент навигации успешно создан |
| 401 | Неверный API ключ или отсутствует |
| 403 | Недостаточно прав для выполнения запроса |
| 422 | Неверные параметры запроса |
Обновление элемента навигации
Обновление данных существующего элемента навигации.
Запрос
PUT /api/navbar-items/{id}Параметры пути
| Название | Тип | Описание |
|---|---|---|
| id | integer | ID элемента навигации |
Заголовки
| Название | Тип | Описание |
|---|---|---|
| X-API-Key | string | Обязательный. API ключ |
| Content-Type | string | Обязательный. application/json |
Тело запроса
{
"title": "Обновленный элемент",
"url": "/updated-page",
"new_tab": true,
"icon": "edit",
"position": 3,
"visible_only_for_guests": false,
"visible_only_for_logged_in": true,
"visibility": "desktop",
"parent_id": 1
}Параметры тела запроса
| Название | Тип | Описание |
|---|---|---|
| title | string | Обязательный. Заголовок элемента |
| url | string | Необязательный. URL-адрес элемента |
| new_tab | boolean | Необязательный. Открывать в новой вкладке |
| icon | string | Необязательный. Иконка элемента |
| position | integer | Необязательный. Позиция элемента |
| visible_only_for_guests | boolean | Необязательный. Видимость только для гостей |
| visible_only_for_logged_in | boolean | Необязательный. Видимость только для авторизованных |
| visibility | string | Необязательный. Видимость (all, desktop, mobile) |
| parent_id | integer | Необязательный. ID родительского элемента |
Ответ
{
"message": "Navbar item updated successfully",
"navbar_item": {
"id": 4,
"title": "Обновленный элемент",
"url": "/updated-page",
"new_tab": true,
"icon": "edit",
"position": 3,
"visible_only_for_guests": false,
"visible_only_for_logged_in": true,
"visibility": "desktop",
"parent_id": 1
}
}Коды ответов
| Код | Описание |
|---|---|
| 200 | Элемент навигации успешно обновлен |
| 401 | Неверный API ключ или отсутствует |
| 403 | Недостаточно прав для выполнения запроса |
| 404 | Элемент навигации не найден |
| 422 | Неверные параметры запроса |
Удаление элемента навигации
Удаление элемента навигации из системы.
Запрос
DELETE /api/navbar-items/{id}Параметры пути
| Название | Тип | Описание |
|---|---|---|
| id | integer | ID элемента навигации |
Заголовки
| Название | Тип | Описание |
|---|---|---|
| X-API-Key | string | Обязательный. API ключ |
Ответ
{
"message": "Navbar item deleted successfully"
}Коды ответов
| Код | Описание |
|---|---|
| 200 | Элемент навигации успешно удален |
| 401 | Неверный API ключ или отсутствует |
| 403 | Недостаточно прав для выполнения запроса |
| 404 | Элемент навигации не найден |
Обновление ролей элемента навигации
Обновление ролей, для которых доступен элемент навигации.
Запрос
PUT /api/navbar-items/{id}/rolesПараметры пути
| Название | Тип | Описание |
|---|---|---|
| id | integer | ID элемента навигации |
Заголовки
| Название | Тип | Описание |
|---|---|---|
| X-API-Key | string | Обязательный. API ключ |
| Content-Type | string | Обязательный. application/json |
Тело запроса
{
"role_ids": [1, 2, 3]
}Параметры тела запроса
| Название | Тип | Описание |
|---|---|---|
| role_ids | array | Массив ID ролей |
Ответ
{
"message": "Navbar item roles updated successfully",
"roles": [
{
"id": 1,
"name": "admin"
},
{
"id": 2,
"name": "user"
},
{
"id": 3,
"name": "editor"
}
]
}Коды ответов
| Код | Описание |
|---|---|
| 200 | Роли элемента навигации успешно обновлены |
| 401 | Неверный API ключ или отсутствует |
| 403 | Недостаточно прав для выполнения запроса |
| 404 | Элемент навигации не найден |
| 422 | Неверные параметры запроса |
Изменение порядка элементов навигации
Изменение порядка (позиции) элементов навигации.
Запрос
PUT /api/navbar-items/reorderЗаголовки
| Название | Тип | Описание |
|---|---|---|
| X-API-Key | string | Обязательный. API ключ |
| Content-Type | string | Обязательный. application/json |
Тело запроса
{
"items": [
{
"id": 1,
"position": 2
},
{
"id": 2,
"position": 0
},
{
"id": 3,
"position": 1
}
]
}Параметры тела запроса
| Название | Тип | Описание |
|---|---|---|
| items | array | Массив объектов с ID и новыми позициями |
| id | integer | ID элемента навигации |
| position | integer | Новая позиция элемента |
Ответ
{
"message": "Navbar items reordered successfully"
}Коды ответов
| Код | Описание |
|---|---|
| 200 | Порядок элементов успешно изменен |
| 401 | Неверный API ключ или отсутствует |
| 403 | Недостаточно прав для выполнения запроса |
| 422 | Неверные параметры запроса |