REST-сервис для просмотра текущей зарплаты и даты следующего повышения.
Каждый сотрудник может видеть только свою сумму: данные доступа к защищённым эндпоинтам выдаются по логину/паролю через JWT-токен.
Реализуйте REST-сервис просмотра текущей зарплаты и даты следующего повышения. Из-за того, что такие данные очень важны и критичны, каждый сотрудник может видеть только свою сумму. Для обеспечения безопасности, вам потребуется реализовать метод где по логину и паролю сотрудника будет выдан секретный токен, который действует в течение определенного времени. Запрос данных о зарплате должен выдаваться только при предъявлении валидного токена.
- Python 3.11+
- PostgreSQL 15+
- Docker & Docker Compose (Опционально)
-
Клонировать репозиторий
-
Установка зависимостей
poetry install
-
Создать файл окружения
.env
# === Database Configuration === DB_HOST=localhost DB_PORT=5432 DB_NAME=your_database_name DB_USER=your_db_user DB_PASSWORD=your_db_password # === JWT Configuration === SECRET_KEY=<ваш_секретный_ключ> ALGORITHM=HS256 ACCESS_TOKEN_EXPIRE_MINUTES=<время_жизни_токена_в_минутах_int>
-
Инициализация БД и миграции
poetry run alembic upgrade head
-
Запуск
poetry run uvicorn app.main:app --reload
-
Проверить работу
curl http://localhost:8000/ # {"message":"Salary-service!"}
-
Клонировать репозиторий
-
Создать файл окружения
.env
# === Database Configuration === DB_HOST=localhost DB_PORT=5432 DB_NAME=your_database_name DB_USER=your_db_user DB_PASSWORD=your_db_password # === JWT Configuration === SECRET_KEY=<ваш_секретный_ключ> ALGORITHM=HS256 ACCESS_TOKEN_EXPIRE_MINUTES=<время_жизни_токена_в_минутах_int>
-
Соберите и запустите контейнеры
docker compose up --build
-
Проверить работу
curl http://localhost:8000/ # {"message":"Salary-service!"}
Метод | Путь | Описание |
---|---|---|
POST | /auth/register/ |
Регистрация нового пользователя |
POST | /auth/login/ |
Авторизация: выдать JWT-токен в cookie |
POST | /logout/ |
Выход: удалить JWT-cookie |
Все эндпоинты требуют валидного users_access_token
в HTTP-куках.
Метод | Путь | Описание |
---|---|---|
GET | /users/me/ |
Получить данные текущего пользователя |
PATCH | /users/update/me |
Частичное обновление данных пользователя |
DELETE | /users/delete/me |
Удаление текущего пользователя |
Метод | Путь | Описание |
---|---|---|
GET | /salary/me/ |
Получить текущую зарплату и дату повышения |
poetry run pytest
Тесты находятся в директории tests/ и покрывают:
-
Аутентификацию (регистрация, логин, логаут)
-
Получение, обновление и удаление данных пользователя
-
Получение зарплаты (включая защиту по токену)
-
Проверку авторизации и ошибок доступа
-
Граничные и невалидные случаи
После запуска сервис предоставляет интерактивную документацию API в двух вариантах:
- Swagger UI (интерактивный и удобный интерфейс):
http://localhost:8000/docs
- ReDoc (альтернативная, более формальная документация):
http://localhost:8000/redoc