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 | Неверные параметры запроса |