105 lines
2.0 KiB
Markdown
105 lines
2.0 KiB
Markdown
## Admin Users API
|
|
|
|
Требуется `Authorization: Bearer <admin_access_token>` и роль `ROLE_ADMIN`.
|
|
|
|
### Создать пользователя
|
|
|
|
POST `/api/admin/users`
|
|
|
|
Body:
|
|
|
|
```json
|
|
{ "email": "user@example.com", "password": "StrongPass123!" }
|
|
```
|
|
|
|
Ответ: `200 OK` (пусто)
|
|
|
|
Ошибки: 400 (валидация), 401/403 (нет прав), 409 (email занят)
|
|
|
|
### Назначить роли пользователю
|
|
|
|
POST `/api/admin/users/roles`
|
|
|
|
Body:
|
|
|
|
```json
|
|
{ "email": "user@example.com", "roles": ["ROLE_USER", "ROLE_ADMIN"] }
|
|
```
|
|
|
|
Ответ: `200 OK` (пусто)
|
|
|
|
Ошибки: 400 (невалидная роль/пользователь не найден), 401/403
|
|
|
|
### Список доступных ролей
|
|
|
|
GET `/api/admin/roles`
|
|
|
|
Ответ:
|
|
|
|
```json
|
|
["ROLE_ADMIN", "ROLE_USER"]
|
|
```
|
|
|
|
Ошибки: 401/403
|
|
|
|
### Список пользователей (пагинация)
|
|
|
|
GET `/api/admin/users?page=0&size=20`
|
|
|
|
Ответ (`Page<UserSummary>`):
|
|
|
|
```json
|
|
{
|
|
"content": [
|
|
{ "id": 1, "email": "root@konturai.local", "roles": "ROLE_ADMIN,ROLE_USER" }
|
|
],
|
|
"pageable": { "pageNumber": 0, "pageSize": 20, ... },
|
|
"totalElements": 1,
|
|
"totalPages": 1,
|
|
"last": true,
|
|
"size": 20,
|
|
"number": 0,
|
|
"sort": { ... },
|
|
"first": true,
|
|
"numberOfElements": 1,
|
|
"empty": false
|
|
}
|
|
```
|
|
|
|
Ошибки: 401/403
|
|
|
|
### Обновить пользователя
|
|
|
|
PUT `/api/admin/users/update`
|
|
|
|
Body (любые поля опциональны кроме `id`):
|
|
|
|
```json
|
|
{
|
|
"id": 1,
|
|
"email": "new@mail.com",
|
|
"password": "NewPass123!",
|
|
"roles": ["ROLE_USER"]
|
|
}
|
|
```
|
|
|
|
Ответ: `200 OK` (пусто)
|
|
|
|
Ошибки: 400 (невалидные данные/роль), 401/403, 404 (пользователь не найден)
|
|
|
|
### Удалить пользователя
|
|
|
|
DELETE `/api/admin/users?id=1`
|
|
|
|
Ответ: `200 OK` (пусто)
|
|
|
|
Ошибки: 401/403
|
|
|
|
### Формат ошибок
|
|
|
|
Все ошибки возвращают JSON:
|
|
|
|
```json
|
|
{ "message": "описание ошибки" }
|
|
```
|