Версия python: 3.10

Установка зависимостей

pip install -r requirements.txt

Лекция 1

dto_attrs, dto_dataclasses, dto_naive, dto_pydantic

Варианты реализации концепта DTO

shop

Пример реализации трехслойной структуры приложения

Лекция 2

Пример реализации авторизации с использованием jwt-токенов и fastapi

Запуск:

  1. Установить WorkingDirectory в папку
  2. Пометить папкe lesson2 как source root
  3. Скопироать .env.example с именем .env
  4. Выполнить команду
uvicorn app.main:app --reload

Лекция 3

Проект с которым работаем в третьем уроке - повторяет проект из первого урока но с той разницей, что в данном случае будет реальная работа с базой данных MongoDB В данном проекте решается задача реализации записи и логика по заранее составленному упрощенному описанию

Решение проходит в два этапа:

  1. Апи версии 1 реализует только без непосредственной реализации внутренней логики
  2. Апи версии 2 повторяет апи первой версии но уже с бизнес-логикой

Это тренировка работы над проектом в понедельник где в начале будет задача реализовать апи в фастапи на основе описания с которым сможет работать фронтенд И далее реализовать низлежащую бизнес логику чтобы иметь возможность параллельно вести разработку зада и переда приложения

  1. Перейти в папку lesson3 и выполнить установку зависимостей
cd lesson3; pip install -r requirements.txt
  1. убрать отметку SourcesRoot с папки lesson2 и добавить её на lesson3
  2. Создать новую конфигурацию для запуска приложения lesson3 по аналогии с lesson2 но со ссылками на новую папку
  3. Запусить вебсервер командой в pycharm, перейти в сваггер, авторизоваться (testuser|demopassword) и запросить методы v1/create_order v1/orders_list

Запуск MongoDB

  1. Установить docker docker:
  1. Запустить контейнер с локально базой MongoDB находясь в папке lesson3
docker compose up

или

docker-compose up

Лекция 4. Тестирование

Работа ведется в папке lesson3 так как тесты добавляются в уже готовое приложение прошлого урока

  1. Повторно установить зависимости pip install -r requirements.txt
  2. Добавить конфигурацию для запуска тестов и настроить запуск по аналогии со скриншотом
  3. img.png
  4. Запустить
  5. Вы увидите в новом окне список пройденных тестов, среди них один с ошибкой

Лекция 5. Трассировка

  1. Перейдите в папку lession5 и установите зависимости pip install -r requirements.txt
  2. Запустите три сервиса в разных терминалах (или коммандах)
uvicorn order_service:app --port=8000
uvicorn price_service:app --port=8001
uvicorn discounts_service:app --port=8002

3. Перейдите в интерфейс и попрубуйте выполнить запрос http://localhost:8000/docs#/default/create_order_create_order_post
4. В грейлоге найдите запрос который сделали вы http://5.63.159.74:16686/