Почему FastAPI?

Введение в FastAPI

Matt Eckerle

Software and Data Engineering Leader

Что такое FastAPI?

Основные термины

  1. API: Application Programming Interface — веб-приложения, использующие протокол HTTP для передачи структурированных данных
  2. Веб-приложение: приложение, обслуживающее трафик в интернете
  3. Веб-фреймворк: программный фреймворк для разработки веб-приложений

FastAPI — быстрый способ создавать высокопроизводительные API на Python

Введение в FastAPI

Ключевые возможности FastAPI

  • Быстрый: очень высокая производительность
  • «Мало кода» и прост в освоении: аннотации Python и подсказки типов
  • Надёжный: готовый к продакшену код с автодокументацией
  • Основан на стандартах: OpenAPI и JSON Schema

Логотип FastAPI

Логотип OpenAPI

Логотип JSON

1 https://fastapi.tiangolo.com/
Введение в FastAPI

FastAPI и другие веб-фреймворки Python

Flask

  • Разработка веб-приложений (GUI)
  • ORM опционален

FastAPI

  • Разработка API
  • ORM опционален

Django

  • Разработка веб-приложений (GUI)
  • ORM встроен

Ключевые отличия

  • Для API без операций с базой данных
  • Задачи с данными и машинным обучением
Введение в FastAPI

Создание первого веб-приложения с FastAPI

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

pip install fastapi

2. Создайте приложение в main.py

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "Hello World"}

3. Запуск сервера

fastapi dev main.py

REPL с запущенным FastAPI

Введение в FastAPI

Перед практикой с FastAPI

Важные замечания

  1. Запустить сервер FastAPI кнопкой «Выполнить код» нельзя
  2. Код сервера следует записать в редакторе Python как main.py

  3. Запустите его из терминала командой fastapi dev main.py

  4. Убедитесь, что в логах терминала отображается Application startup complete.
  5. Остановите сервер, нажав Control + C в том же терминале
  6. Рекомендуется также установить FastAPI в собственной среде Python для самостоятельной практики
Введение в FastAPI

Vamos praticar!

Введение в FastAPI

Preparing Video For Download...