mv env.template .env
go run cmd/app/main.go
или, используя make
и docker-compose
, запустите сервис вместе с MongoDB:
make compose-up
go test -v -cover -race ./internal/...
или через make
make test
GET /healthz
- Kubernetes Liveness probeGET /swagger/index.html
- Документация Swagger
Описание: Аутентифицирует пользователя. Выдаёт UUID пользователя и отправляет код подтверждения на указанный email.
Параметры:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
email |
string | Адрес электронной почты пользователя | Да |
Заголовки:
Заголовок | Описание |
---|---|
X-Device-Fingerprint |
SHA-256 хэш отпечатка устройства |
Ответы:
Код состояния | Описание | Тело ответа |
---|---|---|
200 | Пользователь найден | { "user_id": "UUID" } |
201 | Пользователь создан | { "user_id": "UUID" } |
400 | Неверный запрос | { "error": "сообщение об ошибке" } |
Описание: Получает токены доступа и обновления после ввода кода подтверждения.
Параметры:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
code |
integer | Код подтверждения | Да |
Заголовки:
Заголовок | Описание |
---|---|
X-User-Id |
UUID пользователя |
X-Device-Fingerprint |
SHA-256 хэш отпечатка устройства |
Ответы:
Код состояния | Описание | Тело ответа |
---|---|---|
200 | Токены выданы | { "access_token": "string", "refresh_token": "string" } 1 |
400 | Неверный запрос | { "error": "сообщение об ошибке" } |
401 | UUID пользователя не указан или пользователь не найден | { "error": "сообщение об ошибке" } |
403 | Неверный код подтверждения | { "error": "сообщение об ошибке" } |
Описание: Обновляет токен доступа.
Параметры:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
refresh_token |
string | Токен обновления 2 | Да |
Заголовки:
Заголовок | Описание |
---|---|
X-User-Id |
UUID пользователя |
X-Device-Fingerprint |
SHA-256 хэш отпечатка устройства |
Ответы:
Код состояния | Описание | Тело ответа |
---|---|---|
200 | Токен доступа обновлён | { "access_token": "string" } |
400 | Неверный запрос | { "error": "сообщение об ошибке" } |
401 | UUID пользователя не указан или пользователь не найден | { "error": "сообщение об ошибке" } |
403 | Неверный токен обновления | { "error": "сообщение об ошибке" } |
Описание: Создает профиль пользователя.
Параметры:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
username |
string | Никнейм пользователя | Да |
firstname |
string | Имя пользователя | Да |
lastname |
string | Фамилия пользователя | Нет |
Заголовки:
Заголовок | Описание |
---|---|
X-Device-Fingerprint |
SHA-256 хэш отпечатка устройства |
Ответы:
Код состояния | Описание | Тело ответа |
---|---|---|
201 | Профиль пользователя создан | |
400 | Неверный запрос | { "error": "сообщение об ошибке" } |
404 | Пользователь не найден | { "error": "сообщение об ошибке" } |
409 | Ник пользователя занят | { "error": "сообщение об ошибке" } |
Описание: Изменяет профиль пользователя.
Параметры:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
username |
string | Никнейм пользователя | Нет |
firstname |
string | Имя пользователя | Нет |
lastname |
string | Фамилия пользователя | Нет |
Заголовки:
Заголовок | Описание |
---|---|
X-Device-Fingerprint |
SHA-256 хэш отпечатка устройства |
Ответы:
Код состояния | Описание | Тело ответа |
---|---|---|
200 | Профиль пользователя обновлён | |
400 | Неверный запрос | { "error": "сообщение об ошибке" } |
404 | Профиль пользователя не найден | { "error": "сообщение об ошибке" } |
409 | Ник пользователя занят | { "error": "сообщение об ошибке" } |
Описание: Получает профиль пользователя.
Параметры:
Нет
Заголовки:
Заголовок | Описание |
---|---|
X-Device-Fingerprint |
SHA-256 хэш отпечатка устройства |
Ответы:
Код состояния | Описание | Тело ответа |
---|---|---|
200 | Профиль найден | { "firstname": "string", "lastname": "string", "email": "string" } |
400 | Неверный запрос | { "error": "сообщение об ошибке" } |
404 | Пользователь или профиль пользователя не найдены | { "error": "сообщение об ошибке" } |
Описание: Поиск пользователей по никнейму с использованием нечеткого поиска
Параметры:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
searchTerm |
string | Строка для поиска | Да |
Заголовки:
Заголовок | Описание |
---|---|
X-Device-Fingerprint |
SHA-256 хэш отпечатка устройства |
Ответы:
Код состояния | Описание | Тело ответа |
---|---|---|
200 | Пользователи найдены | [{ "user_id": "UUID", "profile": { "firstname": "string", "lastname": "string", "username": "string" }, "score": "number" }] |
400 | Неверный запрос | { "error": "сообщение об ошибке" } |