FastAPI — это современный фреймворк для создания производительных и масштабируемых веб-приложений на Python. Он предлагает разработчикам мощный инструмент для создания API с минимальными усилиями, обеспечивая высокую скорость работы и простоту разработки. В этой статье мы разберём, почему FastAPI стал популярным среди разработчиков, и создадим наше первое API-приложение.
Что такое FastAPI
FastAPI — это современный веб-фреймворк для создания API на Python. Он использует ASGI (асинхронный серверный интерфейс) и поддерживает асинхронное программирование на уровне ядра. Главные плюсы:
- Скорость: Производительность близка к Node.js и Go.
- Легкость разработки: Типизация и интеграция с Pydantic значительно упрощают валидацию данных.
- Автоматическая документация: FastAPI генерирует Swagger и ReDoc прямо из вашего кода.
Если коротко — вы получаете мощь, простоту и современный подход в одном флаконе.
Установка и настройка окружения
Давайте начнём с установки FastAPI и сервера Uvicorn (для запуска нашего приложения).
Создаем виртуальное окружение
python -m venv env
Активируем его (для Windows)
source env\Scripts\activate
Активируем его (для Linux или Mac)
source env/bin/activate
Устанавливаем FastAPI и Uvicorn
pip install fastapi uvicorn
Наше первое FastAPI-приложение
Создадим файл main.py и напишем простейшее приложение:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello, FastAPI!"}
Что здесь происходит?
- FastAPI() создаёт экземпляр нашего приложения.
- @app.get(«/») — это декоратор, который определяет маршрут для HTTP GET-запроса на корневой путь (/).
- read_root() — функция, которая возвращает словарь. FastAPI автоматически конвертирует его в JSON-ответ.
Запуск сервера
Запустим наше приложение с помощью Uvicorn:
uvicorn main:app --reload
# main — имя файла без расширения.
# app — имя экземпляра FastAPI в нашем файле.
# --reload — включает автоматическую перезагрузку при изменении кода.
Теперь откройте браузер и перейдите на http://127.0.0.1:8000. Вы увидите:
{"message": "Hello, FastAPI!"}
Автоматическая документация
Один из самых приятных бонусов FastAPI — встроенная генерация документации OpenAPI. Перейдите по ссылке http://127.0.0.1:8000/docs и увидите Swagger UI. Здесь можно тестировать свои маршруты прямо из браузера!
Также есть ReDoc-документация: http://127.0.0.1:8000/redoc.
Добавим немного параметров
FastAPI позволяет легко добавлять параметры в маршруты. Давайте модифицируем наше приложение:
from fastapi import FastAPI
app = FastAPI()
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "query": q}
Теперь, если вы зайдёте на http://127.0.0.1:8000/items/42?q=example, получите такой ответ:
{"item_id": 42, "query": "example"}
item_id — обязательный путь-параметр.
q — необязательный параметр запроса (query).
FastAPI автоматически валидирует типы данных, и если вы передадите что-то не то (item_id должен быть числом), получите корректное сообщение об ошибке.
Офигенный курс, становится понятно куда смотреть и что изучать
Спасибо, успехов вам в изучении FastAPI. Возможно запишу еще видеокурс практический по FastAPI. Подписывайтесь на TG-канал, чтобы следить за обновлениями: https://t.me/codelab_channel