📊 Capítulo 01: Ecossistema FastAPI & ASGI
Especialização Backend com Python & FastAPI
🗺️ A Arquitetura Reativa do FastAPI & ASGI
flowchart TD
CLIENT["Cliente HTTP / Navegador"]
--> UVICORN["Servidor ASGI Uvicorn (uvloop / httptools)"]
--> EVENT_LOOP["Python Asyncio Event Loop"]
--> STARLETTE["Starlette Engine (Roteamento & WebSockets)"]
--> FASTAPI["FastAPI Framework (Validação Pydantic v2 & OpenAPI)"]
--> ENDPOINTS["Rotas Assíncronas (async def) / Síncronas (def no ThreadPool)"]
style CLIENT fill:#ede7f6,stroke:#512da8,stroke-width:2px
style UVICORN fill:#fff3e0,stroke:#ff9800,stroke-width:2px
style EVENT_LOOP fill:#e1f5fe,stroke:#03a9f4,stroke-width:1.5px
style STARLETTE fill:#e8f5e9,stroke:#4caf50,stroke-width:1.5px
style FASTAPI fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px
style ENDPOINTS fill:#e0f2f1,stroke:#00897b,stroke-width:1.5px
🎯 Slide 1: Por Que o FastAPI é Tão Rápido?
-
Padrão ASGI (Asynchronous Server Gateway Interface): Suporta I/O assíncrono nativo sem bloquear a thread principal.
-
Motor Pydantic v2 em Rust: Validação e serialização de dados ultra-rápidas compiladas em código nativo.
- Type Hints Nativos do Python 3.10+: O compilador/interpretador infere validação, documentação e contratos automáticos.
🎯 Slide 2: async def vs def no FastAPI
-
async def(Não-Bloqueante): Para operações I/O que utilizamawait(bancos assíncronosasyncpg, chamadas HTTPhttpx, Redis). defPadrão (Thread Pool): Se você precisa executar código síncrono bloqueante (ex.: I/O de disco antigo), o FastAPI automaticamente o delega para um ThreadPool externo sem travar o Event Loop!
🎯 Slide 3: Estrutura Profissional de Projeto
meu_projeto/
├── app/
│ ├── api/v1/ # Rotas divididas por domínio (APIRouter)
│ ├── core/ # Configurações (Pydantic BaseSettings), segurança e banco
│ ├── models/ # Modelos ORM (SQLModel / SQLAlchemy)
│ ├── schemas/ # DTOs de entrada e saída (Pydantic)
│ └── services/ # Regras de negócio desacopladas
├── tests/ # Testes com Pytest & HTTPX
├── main.py # Instância do FastAPI & Lifespan events
└── Dockerfile # Multi-stage build para produção
Slide 1 de 1
Atalhos: ← → Navegar • Espaço Avançar • F Tela Cheia • Home Início • End Fim