Python сервис на FastAPI, который предоставляет REST API интерфейс с методами:
- добавление заметок
- вывод списка заметок
Данные хранятся в базе данных PostgreSQL.
При сохранении заметок орфографические ошибки валидируются при помощи сервиса Яндекс.Спеллер
Реализована аутентификация пользователей с применнием JWT-токена. Пользователи должны имеют доступ только к своим заметкам.
Перед запуском приложения либо тестов убедитесь в наличии в
директории с проектом файла .env, хранящего следующие настройки:
- MODE = DEV
режим запуска приложения (TEST - тестовый; DEV - основной)
- DB_HOST = db
адрес расположения базы данных
- DB_PORT = 5432
порт, на котором работает база данных
- DB_USER = postgres
пользователь базы данных
- DB_PASS = postgres
пароль для базы данных
- DB_NAME = app_db
название базы данных
- TEST_DB_HOST = test_db
адрес расположения тестовой базы данных
- TEST_DB_PORT = 5432
порт, на котором работает тестовая база данных
- TEST_DB_USER = postgres
пользователь тестовой базы данных
- TEST_DB_PASS = postgres
пароль для тестовой базы данных
- TEST_DB_NAME = test_app_db
название тестовой базы данных
- SECRET_KEY = ...
секрет для шифрования пользовательских паролей
- ALGORITHM=HS256
алгоритм шифрования
- COOKIE_KEY=notes_access_token
ключ для обращения к куке
- SPELLER_URL=https://speller.yandex.net/services/spellservice.json/checkText
URL адрес для валидации слов
Скопируйте репозиторий используя следующую команду:
git clone https://github.com/YuryRass/notesAPI.gitЗатем перейдите в каталог с проектом:
cd notesAPIВ корне проекта переименуйте конфигурационный файлы .env-example на .env
На операционной системе Linux переименовать файл можно следующей командой:
mv .env.example .envПосле всех переименований необходимо указать собственное значение для переменной SECRET_KEY в файле .env
Если у вас Linux/MacOS, можете открыть терминал и запустить команду: openssl rand -base64 32 и получите значение для SECRET_KEY
Для основного запуска проекта введите команду:
docker compose up -d --buildP.S. При этом значение переменной окружения MODE в файле .env должно быть равно DEV
После запуска приложения можно перейти по ссылке: http://0.0.0.0:8000/docs и увидеть все API ручки:
Тестовые сценарии расположены в каталоге app/tests
Для запуска проекта с прохождением тестов через pytest необходимо переменной MODE присвоить значение TEST.
После этого необходимо подготовить оболочку с соответсвующими зависимостями:
python3 -m venv venv
source venv/bin/activateи выполнить следующую команду:
pytest -v -s .telegram @YurySundown
e-mail yurchik1997yurchik@gmail.com

