img

Гайд по Python REST API: начало работы с FastAPI

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

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

Что такое FastAPI?

FastAPI — это современный и высокопроизводительный веб-фреймворк для создания API на Python 3.6+, основанный на стандартных подсказках типов Python. FastAPI работает очень быстро благодаря встроенной поддержке функции async в Python 3.6+.

FastAPI был выпущен в 2018 году и создан Себастьяном Рамиресом. Рамиреса не устраивали существующие фреймворки, такие как Flask и DRF, поэтому он создал свой собственный фреймворк, используя такие инструменты, как Starlette и Pydantic. Сейчас многие крупные технологические компании, такие как Uber, Netflix и Microsoft, используют FastAPI для создания своих приложений.

Возможности FastAPI

FastAPI обладает множеством замечательных функций. Давайте рассмотрим их:

  • Высокая производительность: FastAPI работает быстро. Он считается одним из самых быстрых фреймворков Python, доступных в настоящее время.
  • Надежность: вы можете создавать готовый к производству код с помощью автоматической интерактивной документации.
  • Интуитивно понятный интерфейс: FastAPI был разработан, чтобы быть простым в использовании и изучении. Он предлагает отличную поддержку редактора и документацию.
  • Быстрое создание кода: FastAPI увеличивает скорость разработки на 200-300 %.
  • Меньше ошибок: сокращает около 40 % возникающих ошибок.
  • Совместимость: он хорошо работает с открытыми стандартами APIS, OpenAPI (ранее известный как Swagger) и JSON-схемами.
  • Плагины: вы можете легко создавать плагины, используя инъекцию зависимостей.
  • Подсказки типов: вы можете использовать подсказки типов для проверки и преобразования данных.

Сравнение Flask и FastAPI

В этом разделе мы рассмотрим Flask и FastAPI. Мы обсудим их плюсы, минусы и варианты использования.

Flask

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

Плюсы:

— Гибкость: вы можете управлять большинством аспектов Flask.

— Интуитивность: Flask отлично подходит для новичков благодаря своей простоте.

— Встроенный сервер разработки: эта встроенная функциональность, а также интегрированная поддержка позволяют легко проводить модульное тестирование.

Минусы:

— Нет проверки данных: в Flask можно передавать данные любого типа. Это может привести к частым сбоям в работе программ.

— Время: в системе есть один источник, который обрабатывает запросы по очереди, что означает, что на обработку запросов может уйти некоторое время.

 

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

  • Системы электронной коммерции
  • Боты для социальных сетей
  • Социальные сети
  • Статические веб-сайты

FastAPI

FastAPI - это современный высокопроизводительный веб-фреймворк. Он используется для создания веб-интерфейсов.

Плюсы:

— Валидация данных: проверяет тип данных даже во вложенных JSON-запросах.

— Обработка исключений: с помощью FastAPI можно легко обрабатывать исключения.

— Поддержка асинхронного кода: поддерживается асинхронный код с использованием ключевых слов async/await Python.

Минусы:

— Проверка запросов: FastAPI использует Pydantic для проверки запросов. Этот процесс не всегда интуитивно понятен и иногда требует написания собственного валидатора.

— Небольшое сообщество: поскольку фреймворк все еще довольно новый, сообщество в нем меньше, чем в других фреймворках.

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

  • Внутреннее антикризисное управление
  • Развертывание моделей машинного обучения
  • Создание учетных записей, логинов и аутентификации для веб-приложений

Hello World в FastAPI 

Давайте немного попрактикуемся в работе с FastAPI! Мы рассмотрим простой Hello World! и разберем его на части.

Чтобы запустить сервер, нужно выполнить следующую команду:

Давайте разберемся, что к чему:

  • main: относится к имени файла
  • app: обозначает объект FastAPI, созданный внутри файла hello.py
  • --reload: параметр, который заставляет сервер перезапускаться после изменения кода

Давайте разберем наш код «Hello World!»:

Строка 1: мы импортируем FastAPI, который является классом Python, предоставляющим всю функциональность API.

Строка 3: мы создаем экземпляр класса FastAPI и называем его app. Это приложение, на которое ссылается uvicorn в приведенной выше команде.

Строка 5: создаем путь GET.

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

Строка 7: мы возвращаем ответ клиенту при каждом обращении к пути.

Основные блоки FastAPI

Давайте рассмотрим некоторые строительные блоки FastAPI, включая параметры пути, параметры запроса и тело запроса.

Параметры пути

Параметры пути помогают ограничить вызов API одним ресурсом, что означает, что вам не нужно создавать тело запроса для такой простой вещи, как поиск ресурса.

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

Давайте рассмотрим, как их использовать:

Значение параметра path course_name будет передано в функцию read_couse() в качестве аргумента course_name.

Параметры запроса

Параметры запроса являются необязательными. В FastAPI параметры функции, не объявленные как часть параметров пути, автоматически интерпретируются как параметры запроса.

Давайте посмотрим на пример кода:

Запрос - это набор пар ключ-значение, которые идут после вопросительного знака ? в URL-адресе и разделяются амперсандом &.

Взгляните на следующий URL:

http://localhost:8000/courses/?start=0&end=10

Его параметры запроса следующие: начинаются со значения 0 и заканчиваются значением 10.

В строке 8 кода мы передаем два параметра запроса, которые ожидает наш API.

Тело запроса

Тело запроса - это данные, отправляемые клиентом вашему API. Чтобы объявить его в FastAPI, мы можем использовать модели Pydantic.

Давайте посмотрим на примере, как это можно сделать:

Давайте разберем эти части:

Строки 1-3: импортируем необходимые пакеты.

Строка 5: мы объявляем модель данных запроса.

Строка 11: создаем экземпляр класса FastAPI.

Строка 13: создаем путь POST.

Строка 14: добавляем модель данных запроса в путь.

Что изучать дальше

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

Ссылка
скопирована
Программирование
Скидка 25%
Python Advanced. Продвинутый курс
Освойте асинхронное и метапрограммирование, изучите аннотацию типов и напишите собственное приложение на FastAPI. Улучшите свои навыки Python, чтобы совершить быстрый рост вашего грейда до уровня middle.
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
Гипервизор - это программное обеспечение для виртуализации, используемое для создания и запуска виртуальных машин (ВМ). Гипервиз
img
Виртуализация серверов позволяет запускать несколько виртуальных машин на одном физическом сервере. Запуск виртуальных машин (ВМ
img
Сегодня мы рассмотрим, как настроить и использовать PHP в проекте. Но прежде чем начать, нужно понять, что такое PHP. Что такое
img
Как разработчик, вы знаете, что HTML расшифровывается как HyperText Markup Language (язык разметки гипертекста). HTML — это язык
img
Бесконечные споры вокруг искусственного интеллекта приводят к путанице. Существует много терминов, которые кажутся похожими, но
img
SVG расшифровывается как масштабируемая векторная графика. Это веб-дружелюбный векторный формат файлов, используемый для отображ
Комментарии
ОСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59