Skip to content

Repository files navigation

Notes API

Описание проекта

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

    ключ для обращения к куке


Установка и запуск

Скопируйте репозиторий используя следующую команду:

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 --build

P.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

About

Веб-приложение на FastAPI "Заметки пользователей"

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages