FastAPI объясняется за 5 минут или меньше

FastAPI, фреймворк Python, позволяющий разрабатывать веб-API, стал популярным в последние несколько лет.

API (интерфейс прикладного программирования) является основой современной архитектуры. Они позволяют приложениям быть модульными и независимыми. Это позволяет быстро создавать приложения и упрощает их обслуживание.

Поэтому рекомендуется изучить FastAPI, если вы планируете использовать Python для разработки веб-приложений. Эта статья научит вас основам FastAPI.

Что такое FastAPI?

FastAPI — это веб-фреймворк на основе Python. В последние годы он привлекает к себе большое внимание. Его структура разработки похожа на Flask, который был самым популярным выбором для тех, кто хотел изучить веб-разработку на Python.

FastAPI прост в использовании, а его документация проста и понятна. FastAPI используют такие технологические гиганты, как Microsoft, Netflix и Uber.

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

Основная цель FastAPI — создание конечных точек API, как следует из названия. Это можно сделать так же эффективно, как вернуть данные словаря Python в формате JSON или использовать интерактивный пользовательский интерфейс OpenAPI Swagger.

FastAPI не ограничивается API. Его можно использовать практически для всего, что делает веб-фреймворк, от доставки веб-страниц с помощью механизма шаблонов Jinja2 до обслуживания приложений на основе WebSockets.

Ниже приведены преимущества FastAPI:

  • FastAPI позволяет проверять тип данных разработчика даже при использовании вложенных запросов JSON.
  • Он предлагает функцию автозаполнения, которая позволяет создавать приложения за более короткое время и с меньшими усилиями.
  • Он совместим со словарем OpenAPI и JSON Schema, что позволяет вам проверять и комментировать документы JSON.
  • FastAPI позволяет быстро создать GraphQL API с помощью библиотеки Python под названием graphene-python.
  • FastAPI совместим с OAuth 2.0, а также с внешними поставщиками.

Ниже приведены недостатки FastAPI:

  • FastAPI по-прежнему является новым фреймворком, поэтому существует мало руководящего сообщества. В нем недостаточно внешней образовательной информации, такой как книги, курсы или учебные пособия.
  • Поскольку мы должны связать все компоненты вместе в FastAPI, основной файл может стать очень большим или переполненным.

Уникальные возможности FastAPI

Это уникальные функции, которые делают FastAPI самой популярной веб-платформой Python на сегодняшний день.

  • Высокая производительность: FastAPI более эффективен, чем другие фреймворки Python. Фреймворк FastAPI, ориентированный на скорость, делает его лучшим выбором. Все сводится к повышению скорости и производительности за счет использования функций Starlette, создания API и создания готовых кодов.
  • Быстрое кодирование: разработчикам не нужно создавать что-то новое с помощью готовых к использованию кодов. Это ускоряет процесс примерно на 200-30%. FastAPI работает на Starlette и имеет множество других функций, которые можно использовать для создания API для проверки и сериализации данных. В фреймворке уже есть все необходимые компоненты, что сокращает время, необходимое для написания кода.
  • Минимум ошибок: фреймворк имеет функцию автодополнения, которая автоматически вставляет большую часть кода в кусок. Это сводит к минимуму возможность ошибок и повышает качество вывода.
  • Легко понять: FastAPI не делает ничего, кроме современного Python. Это модифицированная версия Python 3.6, не содержащая нового синтаксиса. Фреймворк может использовать любой, кто хорошо понимает язык.
  • Минимум усилий: FastAPI автоматически генерирует документацию OpenAPI с минимальными усилиями со стороны разработчика. Эту информацию можно найти в каталоге приложения/doc. Документация содержит подробную информацию о конечных точках API, кодах возврата, параметрах ответа и другие детали.
  • Поддержка редактора: все компоненты фреймворка разработаны с учетом автозаполнения. Это просто, давая разработчикам возможность создавать готовый код. Вы также можете протестировать код прямо из браузера с интерактивной документацией.
  • Открытые стандарты: веб-фреймворк FastAPI Python является огромным преимуществом. Фреймворк совместим с OpenAPI, ранее известным как Swagger, который позволяет создавать API.

Установка FastAPI

Вот простые шаги по установке FastAPI в Linux или Windows.

№1. Установка FastAPI в Linux

Установите Python 3 в Linux с помощью следующей команды:

sudo apt install python3

Установите pip в Linux с помощью следующей команды:

sudo apt install python3-pip

Затем установите FastAPI в Linux.

pip install fastapi

Вам также понадобится сервер ASGI. Итак, устанавливаем uvicorn с помощью pip.

pip install "uvicorn[standard]"

№ 2. Установка FastAPI в Windows

Установите Python 3 в Windows с помощью магазина Microsoft. Это также установит pip.

Затем установите FastAPI в Windows.

pip install fastapi

Наконец, установите сервер ASGI uvicorn.

pip install "uvicorn[standard]"

Новое использование FastAPI

Вот некоторые примеры использования FastAPI нового века:

Автоматизированные документы

Документация о типах и конечных точках API обязательна. Эту проблему можно решить с помощью OpenAPI, пользовательского интерфейса Swagger и ReDoc. Они автоматически упаковываются с помощью FastAPI. Это позволяет вам сосредоточиться на коде, а не на настройке инструментов.

Типизированный Python

FastAPI использует объявления типов Python 3.6 (благодаря Pydantic). Это означает, что он использует функцию Python, которая позволяет вам указывать тип и тип переменной. Этот фреймворк отлично использует его, предоставляя вам отличную поддержку редактора. Автодополнение работает изумительно.

Проверка

Pydantic уже интегрирует проверку в эту структуру. Можно выполнить проверку стандартных типов Python и проверку настраиваемых полей.

Безопасность и аутентификация

Это важная часть любого API. Мы часто просто повторяем код, так почему бы не включить часть его в наш фреймворк? FastAPI делает именно это.

Библиотека поддерживает HTTP Basic, токены OAuth2 (токены JWT) и ключи API заголовков.

Асинхронный характер

FastAPI по умолчанию поддерживает асинхронные конечные точки, что делает ваш код проще и эффективнее. Это значительное преимущество перед Flask.

FastAPI против Flask: ключевые отличия

Различия в использовании

Доступна FastAPI, полнофункциональная платформа, предоставляющая все необходимое для создания собственного API. Flask, с другой стороны, представляет собой микрофреймворк и не предлагает всех тех же функций, что и FastAPI. Flask может быть полезен, если вам нужно быстро создать прототип идеи или простое веб-приложение.

Flask и FastAPI сильно различаются по способу их использования. Платформу Flask можно использовать для создания прототипов новых идей и приложений, а структуру FastAPI можно использовать для создания API. Вы можете быстро создать внутренний сервер, используя его без каких-либо знаний в области кодирования.

Небольшие веб-сайты и веб-приложения

FastAPI прост в использовании, легок и может использоваться для разработки небольших веб-приложений и приложений. Он включает объектно-реляционный уровень (ORM), который обрабатывает объекты данных в приложении, поэтому вы можете быстро получить к ним доступ с помощью кодирования.

Уровень ORM отслеживает ваши базы данных и позволяет вам забыть об их ручном обновлении при добавлении, изменении или удалении новой информации с веб-сайта или приложения.

WSGI против ASGI

Возможно, вы заметили основное отличие: Flask использует WSGI для своего стандартного интерфейса, а FastAPI использует ASGI. Как упоминалось ранее, WSGI обрабатывает запросы синхронно. Запросы обрабатываются последовательно. Нельзя начать, пока не будет выполнена последняя задача.

ASGI обрабатывает запросы асинхронно. Это позволяет выполнять задачи в своем собственном темпе и не требует, чтобы они ждали других.

Сообщество

Еще одно отличие — сообщество. Flask — это сообщество, которое существует дольше, чем FastAPI. Это означает отличную документацию и помощь со стороны от других, кто пишет о Flask.

FastAPI по-прежнему является новым проектом, поэтому сообществу еще предстоит так сильно вырасти. Это означает, что хотя документации достаточно, посторонней помощи мало.

Ниже приведены сводные таблицы для FastAPI и Flask:

FastAPIFlaskПроверка данных встроена. Не имеет проверки данных. Доступна поддержка асинхронных задач. Поддержка асинхронных задач недоступна. Реализует спецификации ASGI. Поддерживает приложения WSGI.

FastAPI или Flask: что выбрать?

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

FastAPI — лучший вариант, когда важнее всего скорость и производительность. Эта структура лучше всего подходит, если вы строите CDN и ожидаете значительного трафика. FastAPI позволяет скачать фреймворк и сразу его использовать. Шаблон проекта сэкономит ваше время и поможет сэкономить время.

FastAPI — лучший вариант, чем Flask, когда вы создаете API. Это особенно верно, когда учитываются микросервисы и другие соображения. Flask — лучший выбор, если у вас уже есть много инструментов, построенных на основе этого фреймворка.

Вывод

Итак, это было все о FastAPI. FastAPI предлагает превосходную скорость и производительность. Эта структура лучше всего подходит, если вы строите свою сеть доставки контента и ожидаете трафика. Инновационная структура FastAPI и шаблон проекта помогут вам сэкономить время.

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

Вы также можете изучить некоторые популярные фреймворки Python для создания API.