Разберемся в теории анатомии веб-сервисов, синхронности и асинхронности, поймем, почему инженеры все чаще сталкиваются с необходимостью писать веб-сервисы и поговорим о лучших стандартах проектирования API
Практика:
— Разбираемся в отличиях синхронности/многопоточности и асинхронности в Python на конкретных примерах
— Созданием скелет веб-сервиса с фреймворком FastAPI: хендлеры, обработка path/query params, headers и body, валидация при помощи typing + FastAPI
— Упрощаем обработку body при помощи моделей данных Pydantic. Модели запроса, вложенные модели, модели ответа, Pydantic + Dataclasses
— Паттерн Middleware и его реализация в FastAPI
— Разбираемся с CORS, загружаем файлы и multipart
— Подключаем к приложению базу данных, создаем миграции при помощи Alembic
— Комбинируем SQLAlchemy и Pydantic для персистирования моделей в NOSQL СУБД
— Немного о startup и shutdown event'ах и необходимости их обработки, заворачиваем все в контейнер и выгружаем документацию OpenAPI