API пользователей
Эндпоинты для управления пользователями в системе.
Получение списка пользователей
Получение полного списка пользователей.
Запрос
GET /api/usersЗаголовки
| Название | Тип | Описание |
|---|---|---|
| X-API-Key | string | Обязательный. API ключ |
Параметры запроса
| Название | Тип | Описание |
|---|---|---|
| page | integer | Необязательный. Номер страницы (по умолчанию: 1) |
| per_page | integer | Необязательный. Количество записей на странице (по умолчанию: 20) |
Ответ
{
"users": [
{
"id": 1,
"username": "admin",
"email": "[email protected]",
"created_at": "2023-01-01T00:00:00Z",
"status": "active"
},
{
"id": 2,
"username": "user1",
"email": "[email protected]",
"created_at": "2023-01-02T00:00:00Z",
"status": "active"
}
]
}Поля ответа
| Поле | Тип | Описание |
|---|---|---|
| users | array | Массив пользователей |
| id | integer | ID пользователя |
| username | string | Имя пользователя |
| string | Email пользователя | |
| created_at | string | Дата создания |
| status | string | Статус пользователя |
Коды ответов
| Код | Описание |
|---|---|
| 200 | Успешный запрос |
| 401 | Неверный API ключ или отсутствует |
| 403 | Недостаточно прав для выполнения запроса |
Получение данных пользователя
Получение детальной информации о конкретном пользователе.
Запрос
GET /api/users/{id}Параметры пути
| Название | Тип | Описание |
|---|---|---|
| id | integer | ID пользователя |
Заголовки
| Название | Тип | Описание |
|---|---|---|
| X-API-Key | string | Обязательный. API ключ |
Ответ
{
"user": {
"id": 1,
"username": "admin",
"email": "[email protected]",
"created_at": "2023-01-01T00:00:00Z",
"updated_at": "2023-01-10T00:00:00Z",
"status": "active",
"roles": [
{
"id": 1,
"name": "admin",
"description": "Администратор"
}
]
}
}Поля ответа
| Поле | Тип | Описание |
|---|---|---|
| user | object | Объект пользователя |
| id | integer | ID пользователя |
| username | string | Имя пользователя |
| string | Email пользователя | |
| created_at | string | Дата создания |
| updated_at | string | Дата обновления |
| status | string | Статус пользователя |
| roles | array | Массив ролей пользователя |
Коды ответов
| Код | Описание |
|---|---|
| 200 | Успешный запрос |
| 401 | Неверный API ключ или отсутствует |
| 403 | Недостаточно прав для выполнения запроса |
| 404 | Пользователь не найден |
Создание пользователя
Создание нового пользователя в системе.
Запрос
POST /api/usersЗаголовки
| Название | Тип | Описание |
|---|---|---|
| X-API-Key | string | Обязательный. API ключ |
| Content-Type | string | Обязательный. application/json |
Тело запроса
{
"username": "newuser",
"email": "[email protected]",
"password": "securepassword",
"role_ids": [2]
}Параметры тела запроса
| Название | Тип | Описание |
|---|---|---|
| username | string | Обязательный. Имя пользователя |
| string | Обязательный. Email пользователя | |
| password | string | Обязательный. Пароль пользователя |
| role_ids | array | Необязательный. ID ролей пользователя |
Ответ
{
"message": "User created successfully",
"user": {
"id": 3,
"username": "newuser",
"email": "[email protected]",
"created_at": "2023-03-15T12:00:00Z",
"status": "active"
}
}Коды ответов
| Код | Описание |
|---|---|
| 201 | Пользователь успешно создан |
| 401 | Неверный API ключ или отсутствует |
| 403 | Недостаточно прав для выполнения запроса |
| 422 | Неверные параметры запроса |
Обновление пользователя
Обновление данных существующего пользователя.
Запрос
PUT /api/users/{id}Параметры пути
| Название | Тип | Описание |
|---|---|---|
| id | integer | ID пользователя |
Заголовки
| Название | Тип | Описание |
|---|---|---|
| X-API-Key | string | Обязательный. API ключ |
| Content-Type | string | Обязательный. application/json |
Тело запроса
{
"username": "updateduser",
"email": "[email protected]",
"password": "newsecurepassword",
"status": "active"
}Параметры тела запроса
| Название | Тип | Описание |
|---|---|---|
| username | string | Необязательный. Имя пользователя |
| string | Необязательный. Email пользователя | |
| password | string | Необязательный. Пароль пользователя |
| status | string | Необязательный. Статус пользователя |
Ответ
{
"message": "User updated successfully",
"user": {
"id": 3,
"username": "updateduser",
"email": "[email protected]",
"created_at": "2023-03-15T12:00:00Z",
"updated_at": "2023-03-16T14:30:00Z",
"status": "active"
}
}Коды ответов
| Код | Описание |
|---|---|
| 200 | Пользователь успешно обновлен |
| 401 | Неверный API ключ или отсутствует |
| 403 | Недостаточно прав для выполнения запроса |
| 404 | Пользователь не найден |
| 422 | Неверные параметры запроса |
Блокировка пользователя
Блокировка пользователя в системе.
Запрос
POST /api/users/{id}/blockПараметры пути
| Название | Тип | Описание |
|---|---|---|
| id | integer | ID пользователя |
Заголовки
| Название | Тип | Описание |
|---|---|---|
| X-API-Key | string | Обязательный. API ключ |
| Content-Type | string | Обязательный. application/json |
Тело запроса
{
"reason": "Нарушение правил сайта",
"until": "2023-04-15T00:00:00Z"
}Параметры тела запроса
| Название | Тип | Описание |
|---|---|---|
| reason | string | Необязательный. Причина блокировки |
| until | string | Необязательный. Дата окончания блокировки (ISO 8601) |
Ответ
{
"message": "User blocked successfully"
}Коды ответов
| Код | Описание |
|---|---|
| 200 | Пользователь успешно заблокирован |
| 401 | Неверный API ключ или отсутствует |
| 403 | Недостаточно прав для выполнения запроса |
| 404 | Пользователь не найден |
| 422 | Неверные параметры запроса |
Разблокировка пользователя
Разблокировка ранее заблокированного пользователя.
Запрос
POST /api/users/{id}/unblockПараметры пути
| Название | Тип | Описание |
|---|---|---|
| id | integer | ID пользователя |
Заголовки
| Название | Тип | Описание |
|---|---|---|
| X-API-Key | string | Обязательный. API ключ |
Ответ
{
"message": "User unblocked successfully"
}Коды ответов
| Код | Описание |
|---|---|
| 200 | Пользователь успешно разблокирован |
| 401 | Неверный API ключ или отсутствует |
| 403 | Недостаточно прав для выполнения запроса |
| 404 | Пользователь не найден |
Управление ролями пользователя
Изменение ролей пользователя.
Запрос
PUT /api/users/{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": "User roles updated successfully",
"user": {
"id": 3,
"username": "user3",
"email": "[email protected]",
"roles": [
{
"id": 1,
"name": "admin",
"description": "Администратор"
},
{
"id": 2,
"name": "moderator",
"description": "Модератор"
},
{
"id": 3,
"name": "user",
"description": "Пользователь"
}
]
}
}Коды ответов
| Код | Описание |
|---|---|
| 200 | Роли пользователя успешно обновлены |
| 401 | Неверный API ключ или отсутствует |
| 403 | Недостаточно прав для выполнения запроса |
| 404 | Пользователь не найден |
| 422 | Неверные параметры запроса |
Получение социальных сетей пользователя
Получение списка привязанных социальных сетей пользователя.
Запрос
GET /api/users/{id}/social-networksПараметры пути
| Название | Тип | Описание |
|---|---|---|
| id | integer | ID пользователя |
Заголовки
| Название | Тип | Описание |
|---|---|---|
| X-API-Key | string | Обязательный. API ключ |
Ответ
{
"social_networks": [
{
"id": 1,
"network": "vk",
"profile_url": "https://vk.com/username"
},
{
"id": 2,
"network": "telegram",
"profile_url": "@username"
}
]
}Коды ответов
| Код | Описание |
|---|---|
| 200 | Успешный запрос |
| 401 | Неверный API ключ или отсутствует |
| 403 | Недостаточно прав для выполнения запроса |
| 404 | Пользователь не найден |
Добавление социальной сети пользователю
Добавление новой привязки социальной сети пользователю.
Запрос
POST /api/users/{id}/social-networksПараметры пути
| Название | Тип | Описание |
|---|---|---|
| id | integer | ID пользователя |
Заголовки
| Название | Тип | Описание |
|---|---|---|
| X-API-Key | string | Обязательный. API ключ |
| Content-Type | string | Обязательный. application/json |
Тело запроса
{
"network_id": 1,
"profile_url": "https://vk.com/new_username"
}Параметры тела запроса
| Название | Тип | Описание |
|---|---|---|
| network_id | integer | Обязательный. ID социальной сети |
| profile_url | string | Обязательный. URL профиля или username |
Ответ
{
"message": "Social network added successfully",
"social_network": {
"id": 3,
"network": "vk",
"profile_url": "https://vk.com/new_username"
}
}Коды ответов
| Код | Описание |
|---|---|
| 201 | Социальная сеть успешно добавлена |
| 401 | Неверный API ключ или отсутствует |
| 403 | Недостаточно прав для выполнения запроса |
| 404 | Пользователь не найден |
| 422 | Неверные параметры запроса |
Удаление социальной сети пользователя
Удаление привязки социальной сети у пользователя.
Запрос
DELETE /api/users/{userId}/social-networks/{networkId}Параметры пути
| Название | Тип | Описание |
|---|---|---|
| userId | integer | ID пользователя |
| networkId | integer | ID привязки социальной сети |
Заголовки
| Название | Тип | Описание |
|---|---|---|
| X-API-Key | string | Обязательный. API ключ |
Ответ
{
"message": "Social network removed successfully"
}Коды ответов
| Код | Описание |
|---|---|
| 200 | Социальная сеть успешно удалена |
| 401 | Неверный API ключ или отсутствует |
| 403 | Недостаточно прав для выполнения запроса |
| 404 | Пользователь или привязка сети не найдены |
Получение устройств пользователя
Получение списка устройств пользователя.
Запрос
GET /api/users/{id}/devicesПараметры пути
| Название | Тип | Описание |
|---|---|---|
| id | integer | ID пользователя |
Заголовки
| Название | Тип | Описание |
|---|---|---|
| X-API-Key | string | Обязательный. API ключ |
Ответ
{
"devices": [
{
"id": 1,
"name": "Chrome on Windows",
"last_active": "2023-03-15T12:00:00Z",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36"
},
{
"id": 2,
"name": "Firefox on MacOS",
"last_active": "2023-03-10T14:30:00Z",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/111.0"
}
]
}Коды ответов
| Код | Описание |
|---|---|
| 200 | Успешный запрос |
| 401 | Неверный API ключ или отсутствует |
| 403 | Недостаточно прав для выполнения запроса |
| 404 | Пользователь не найден |
Удаление устройства пользователя
Удаление устройства и связанной с ним сессии пользователя.
Запрос
DELETE /api/users/{userId}/devices/{deviceId}Параметры пути
| Название | Тип | Описание |
|---|---|---|
| userId | integer | ID пользователя |
| deviceId | integer | ID устройства |
Заголовки
| Название | Тип | Описание |
|---|---|---|
| X-API-Key | string | Обязательный. API ключ |
Ответ
{
"message": "Device removed successfully"
}Коды ответов
| Код | Описание |
|---|---|
| 200 | Устройство успешно удалено |
| 401 | Неверный API ключ или отсутствует |
| 403 | Недостаточно прав для выполнения запроса |
| 404 | Пользователь или устройство не найдены |
Поиск пользователей
Поиск пользователей по имени или email.
Запрос
GET /api/users/searchЗаголовки
| Название | Тип | Описание |
|---|---|---|
| X-API-Key | string | Обязательный. API ключ |
Параметры запроса
| Название | Тип | Описание |
|---|---|---|
| q | string | Обязательный. Поисковый запрос (мин. 3 символа) |
Ответ
{
"users": [
{
"id": 1,
"username": "admin",
"email": "[email protected]",
"created_at": "2023-01-01T00:00:00Z",
"status": "active"
},
{
"id": 5,
"username": "administrator",
"email": "[email protected]",
"created_at": "2023-01-05T00:00:00Z",
"status": "active"
}
]
}Коды ответов
| Код | Описание |
|---|---|
| 200 | Успешный запрос |
| 401 | Неверный API ключ или отсутствует |
| 403 | Недостаточно прав для выполнения запроса |
| 422 | Неверные параметры запроса (слишком короткий запрос) |