← Ко всем open source проектам

FastAPI

fastapi/fastapi

FastAPI — Python-фреймворк для API на type hints, Starlette и Pydantic с автоматической OpenAPI-документацией и асинхронной моделью.

Форки 9,403
Автор fastapi
Язык Python
Лицензия MIT
Обновлено 2026-06-09

Что это такое

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

Фреймворк построен поверх Starlette и Pydantic. Starlette дает асинхронную веб-основу, middleware и маршрутизацию, а Pydantic отвечает за модели данных и валидацию. Итог — небольшой код, который сразу дает проверку входа, сериализацию ответа и интерактивную документацию.

Что внутри и как используют

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

Минимальный API

Пример показывает ключевую идею FastAPI: типы и модель данных сразу становятся частью контракта API.

Язык: Python
from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Task(BaseModel):
    title: str
    done: bool = False

@app.post('/tasks')
def create_task(task: Task):
    return {'saved': task.title, 'done': task.done}

Типовой сценарий: описать Pydantic-модель, написать функцию-обработчик, получить проверку данных и документацию Swagger UI. Это снижает количество ручного кода вокруг схем и ошибок.

Сильные стороны и ограничения

Сильная сторона — ясная связь между Python-типами и API-контрактом. Разработчик видит структуру данных в коде, а пользователь API получает документацию и понятные ошибки.

Ограничение — нужно понимать асинхронность, Pydantic и структуру приложения. Для больших систем все равно потребуется архитектура, миграции, фоновые задачи, наблюдаемость и дисциплина вокруг зависимостей.