Coffee to go. Admin API (1.0.0)

Download OpenAPI specification:

License: proprietary

Admin API для системы заказа кофе с доставкой. Позволяет управлять сотрудниками, меню, принимать заказы и отслеживать их статус.

Аутентификация

Методы для аутентификации и получения токенов доступа

Авторизация пользователя

Авторизует пользователя по логину и паролю и возвращает JWT токены доступа и обновления.

Request Body schema: application/json
required
login
required
string

Логин пользователя (может быть email или имя пользователя)

password
required
string <password> (password) >= 8 characters

Пароль (минимум 8 символов, должен содержать цифры и спецсимволы)

Responses

Request samples

Content type
application/json
{
  • "login": "user@example.com",
  • "password": "Str0ngP@ss!"
}

Response samples

Content type
application/json
{
  • "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  • "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}

Выход пользователя

Завершает сессию пользователя и делает refresh-токен недействительным.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "title": "Ошибка авторизации",
  • "message": "Требуется вход в систему",
  • "code": 401,
  • "fields": null
}

Обновление токенов

Принимает refresh-токен в заголовке Authorization и возвращает новую пару access и refresh токенов. Заголовок должен иметь вид: Authorization: Bearer <refresh_token>

header Parameters
Authorization
required
string
Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Refresh-токен в формате Bearer

Responses

Response samples

Content type
application/json
{
  • "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  • "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}

Пользователи

Все операции с пользователями

Получение списка пользователей

Возвращает список пользователей с пагинацией. Требует прав администратора.

Authorizations:
bearerAuth
query Parameters
page
integer >= 0
Default: 0
Example: page=0

Номер страницы для пагинации (начинается с 0). Используется вместе с параметром size для управления разбиением на страницы.

size
integer [ 1 .. 100 ]
Default: 20
Example: size=10

Количество элементов на странице.

sort
string
Example: sort=name

Поле для сортировки.

sortDir
string
Default: "asc"
Enum: "asc" "desc"
Example: sortDir=desc

Направление сортировки

search
string
Example: search=Den

Поле поиска (фильтрация по имени, email и т.д.)

roles
Array of strings (user-role)
Items Enum: "SUPER_ADMIN" "ADMIN" "EMPLOYEE"
Example: roles=ADMIN

Роли для фильтрации (можно указать несколько)

Responses

Response samples

Content type
application/json
Example
{
  • "content": [
    ],
  • "pageNumber": 0,
  • "pageSize": 2,
  • "totalElements": 3,
  • "totalPages": 2
}

Создание пользователя

Создает нового пользователя в системе. Требует прав администратора.

Authorizations:
bearerAuth
Request Body schema: application/json
required
fullName
required
string [ 2 .. 100 ] characters

Полное имя пользователя

email
required
string <email>

Email адрес (должен быть уникальным)

password
required
string <password> (password) >= 8 characters

Пароль (минимум 8 символов, должен содержать цифры и спецсимволы)

role
required
string (user-role)
Enum: "SUPER_ADMIN" "ADMIN" "EMPLOYEE"

Роли пользователей:

  • SUPER_ADMIN: Единственный администратор с полными правами, которого нельзя удалить
  • ADMIN: Администратор с полными правами, которого можно удалять
  • EMPLOYEE: Сотрудник с ограниченным набором прав

Responses

Request samples

Content type
application/json
Example
{
  • "fullName": "Админ",
  • "email": "admin@example.com",
  • "password": "AdminP@ss123",
  • "role": "ADMIN"
}

Response samples

Content type
application/json
{
  • "id": 123,
  • "fullName": "Иван Петров",
  • "email": "user@example.com",
  • "role": "ADMIN"
}

Получение пользователя по ID

Возвращает информацию о пользователе по его идентификатору. Требует прав администратора.

Authorizations:
bearerAuth
path Parameters
id
required
integer <int64> (user-id)
Example: 123

Уникальный ID (long)

Responses

Response samples

Content type
application/json
{
  • "id": 123,
  • "fullName": "Иван Петров",
  • "email": "user@example.com",
  • "role": "ADMIN"
}

Обновление данных пользователя

Обновляет информацию о пользователе (имя, email, пароль или роль). Требует прав администратора. Пароль изменяется только если передан в запросе.

Authorizations:
bearerAuth
path Parameters
id
required
integer <int64> (user-id)
Example: 123

Уникальный ID (long)

Request Body schema: application/json
required

Данные для обновления

fullName
required
string [ 2 .. 100 ] characters

Полное имя пользователя

email
required
string <email>

Email адрес (должен быть уникальным)

password
string or null <password> >= 8 characters

Пароль (опционально, минимум 8 символов, должен содержать цифры и спецсимволы). Если поле передано, пароль будет изменен.

role
required
string (user-role)
Enum: "SUPER_ADMIN" "ADMIN" "EMPLOYEE"

Роли пользователей:

  • SUPER_ADMIN: Единственный администратор с полными правами, которого нельзя удалить
  • ADMIN: Администратор с полными правами, которого можно удалять
  • EMPLOYEE: Сотрудник с ограниченным набором прав

Responses

Request samples

Content type
application/json
Example
{
  • "fullName": "Анна Ковалева",
  • "email": "a.kovaleva@example.com",
  • "role": "EMPLOYEE"
}

Response samples

Content type
application/json
{
  • "id": 123,
  • "fullName": "Иван Петров",
  • "email": "user@example.com",
  • "role": "ADMIN"
}

Удаление пользователя

Удаляет пользователя из системы по его идентификатору. Требует прав администратора. Внимание: Операция необратима!

Authorizations:
bearerAuth
path Parameters
id
required
integer <int64> (user-id)
Example: 123

Уникальный ID (long)

Responses

Response samples

Content type
application/json
{
  • "title": "Ошибка авторизации",
  • "message": "Требуется вход в систему",
  • "code": 401,
  • "fields": null
}

Получение текущего пользователя

Возвращает информацию о текущем пользователе пользователе.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "id": 123,
  • "fullName": "Иван Петров",
  • "email": "user@example.com",
  • "role": "ADMIN"
}

Обновление данных текущего пользователя

Обновляет информацию о текущем пользователе (имя, email, пароль). Пароль изменяется только если передан в запросе.

Authorizations:
bearerAuth
Request Body schema: application/json
required

Данные для обновления

fullName
required
string [ 2 .. 100 ] characters

Полное имя пользователя

email
required
string <email>

Email адрес (должен быть уникальным)

password
string or null <password> >= 8 characters

Пароль (опционально, минимум 8 символов, должен содержать цифры и спецсимволы). Если поле передано, пароль будет изменен.

Responses

Request samples

Content type
application/json
Example
{
  • "fullName": "Анна Ковалева",
  • "email": "a.kovaleva@example.com"
}

Response samples

Content type
application/json
{
  • "id": 123,
  • "fullName": "Иван Петров",
  • "email": "user@example.com",
  • "role": "ADMIN"
}