Добавить в корзинуПозвонить
Найти в Дзене

FastAPI 0: Начало

Какой есть выбор? В мире python веб-фреймворков есть три основных кандидата: FastAPI как выбор после Django После нескольких лет работы с Django, я начал искать альтернативы, рассматривая Flask и FastAPI. Мой выбор пал на FastAPI по следующим причинам: Однако, как и с Flask, у FastAPI нет строгой структуры построения приложения, как в Django. Каждый новый сервис, который я создавал, оказывался похожим, но в то же время сильно отличающимся от предыдущих, из-за экспериментов с различными паттернами проектирования. Это привело к основной проблеме: из-за отсутствия структурных ограничений FastAPI, я начал искать open source шаблоны, чтобы найти оптимальный подход. Но в каждом из них я находил как полезные моменты, так и множество непонятных, вызывающих вопросы: "Зачем это нужно?", "Почему так сделано?", "А это что за покемон?" и "Это не оптимально, я бы сделал иначе". Если интересно, то вот несколько из тех, что я перепробовал: В итоге я пришёл к выводу, что лучшее решение для меня — созда
Оглавление

Какой есть выбор?

В мире python веб-фреймворков есть три основных кандидата:

  1. Django (и DRF) - этот гигантский фреймворк включает в себя обширный функционал с заранее продуманными решениями, такими как встроенные ORM, базы данных, миграции, админ-панель, шаблоны и система маршрутизации. Он также отличается четкими паттернами проектирования приложений. Однако, при разработке REST API сервисов, многие возможности Django оказываются избыточными и требуют дополнительной настройки, что может привести к усложнению проекта.
  2. Flask - это легковесный фреймворк, идеально подходящий для быстрой разработки как простых, так и сложных HTTP-сервисов. Основываясь на принципе "минимального набора функций", Flask предоставляет базовые инструменты для работы с HTTP-сервисами, позволяя разработчикам добавлять дополнительные функции самостоятельно или использовать решения из сообщества.

FastAPI как выбор после Django

После нескольких лет работы с Django, я начал искать альтернативы, рассматривая Flask и FastAPI. Мой выбор пал на FastAPI по следующим причинам:

  • Привычный стек технологий, включая Pydantic и SQLAlchemy.
  • Чёткая концепция взаимоотношения компонентов: middleware, обработчики, маршрутизация.
  • Асинхронность фреймворка.

Однако, как и с Flask, у FastAPI нет строгой структуры построения приложения, как в Django. Каждый новый сервис, который я создавал, оказывался похожим, но в то же время сильно отличающимся от предыдущих, из-за экспериментов с различными паттернами проектирования.

Это привело к основной проблеме: из-за отсутствия структурных ограничений FastAPI, я начал искать open source шаблоны, чтобы найти оптимальный подход. Но в каждом из них я находил как полезные моменты, так и множество непонятных, вызывающих вопросы: "Зачем это нужно?", "Почему так сделано?", "А это что за покемон?" и "Это не оптимально, я бы сделал иначе".

Если интересно, то вот несколько из тех, что я перепробовал:

В итоге я пришёл к выводу, что лучшее решение для меня — создать собственный шаблон FastAPI, который будет полностью соответствовать моим потребностям и представлениям о проектировании.

В этой подборке я расскажу весь путь от начала и до деплоя.