Логика работы следующая: каждый пользователь может по POST /login пройти авторизацию и ему становятся доступны методы POST, GET, DELETE /count. По GET /count пользователь может узнать текущее значение счетчика (начинает с 0), по POST добавить 1 ко значению, по DELETE вычесть 1 из значения. У каждого пользователя свой счетчик.
Проект написан на django с использованием базы данных PostgreSQL в качестве хранилища. Деплоится через docker-compose up. Аутентификация на основе JSON Web Token с использованием библиотеки djangorestframework-simplejwt
После запуска приложения надо зайти в контейнер службы web и создать суперользователя для того чтобы зайти в админку и добавить остальных пользователей:
docker exec -it counter_project_web_1 sh
python manage.py createsuperuser
-
Аутентификация в системе: Запрос - curl -X POST -H "Content-Type: application/json" -d '{"username": "username", "password": "password"}' http://127.0.0.1:8001/login/ В ответ получаем token, который нужен для доступа к защенным методам эндпоинта /count.
-
Запросить значение счетчика: Запрос - curl -X GET -H "Authorization: Bearer token" http://127.0.0.1:8001/count/
-
Увеличить значение счетчика на 1: Запрос - curl -X POST -H "Authorization: Bearer token" http://127.0.0.1:8001/count/
-
Уменьшить значение счетчика на 1: Запрос - curl -X DELETE -H "Authorization: Bearer token" http://127.0.0.1:8001/count/
- pytest.env - пример файла с переменными среды для тестирования в pytest.
- dev.env - пример файла с переменными среды для разработки.
- set_env_vars.sh - Linux-скрипт для установки переменных среды из файла dev.env