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 | Неверные параметры запроса (слишком короткий запрос) |