Antes de começarmos a codar, vamos entender o contexto: o que são frameworks web e como o FastAPI surgiu.
Um framework web é uma ferramenta que facilita a criação de aplicações web e APIs. Pense nele como um conjunto de componentes prontos que você pode usar para não ter que "reinventar a roda" toda vez que criar um projeto.
- Gerenciar conexões HTTP manualmente
- Criar seu próprio sistema de rotas
- Implementar validação de dados do zero
- Configurar serialização JSON
- Lidar com CORS, autenticação, etc.
- ✅ Sistema de rotas já pronto
- ✅ Validação automática de dados
- ✅ Conversão automática entre JSON e Python
- ✅ Ferramentas de teste
- ✅ Documentação automática (no caso do FastAPI)
- ✅ Ecossistema de extensões
Django foi um dos primeiros grandes frameworks Python, criado para desenvolvimento web completo (front + back). Traz ORM, admin, templates - tudo integrado. Ótimo para sites completos, mas pesado para APIs simples.
Flask trouxe simplicidade: um microframework que te dá o básico e deixa você escolher o resto. Perfeito para APIs pequenas e projetos onde você quer controle total.
Tornado foi pioneiro em operações assíncronas no Python, focado em alta performance e conexões em tempo real (WebSockets).
É aqui que nossa história começa!
Em 2018, Sebastián Ramírez (também conhecido como @tiangolo no GitHub), um desenvolvedor colombiano, tinha um problema: ele precisava criar APIs rapidamente, com validação robusta de dados, e que fossem muito rápidas.
Os frameworks existentes não atendiam todos os requisitos:
- Django era completo demais e lento para APIs puras
- Flask era simples mas não tinha validação automática
- Nenhum aproveitava bem a nova sintaxe
async/awaitdo Python
Sebastián combinou o melhor dos dois mundos:
- Starlette - Framework assíncrono rápido e leve (camada base)
- Pydantic - Validação de dados usando type hints do Python
E adicionou:
- ✨ Documentação automática (Swagger/OpenAPI)
- ✨ Validação baseada em tipos Python modernos
- ✨ Performance comparável a Node.js e Go
- ✨ Editor support (autocomplete, type checking)
- ✨ Facilidade de uso do Flask, com poder do Django
A versão 0.1.0 foi lançada e rapidamente ganhou atenção da comunidade.
Python 3.6+ tinha introduzido type hints, e Python 3.7+ melhorou muito o async/await. FastAPI aproveitou essas features modernas.
# Com FastAPI, isso valida automaticamente:
@app.post("/users/")
def create_user(name: str, age: int):
return {"name": name, "age": age}
# Sem framework, seria preciso ~20 linhas para fazer o mesmo!FastAPI é um dos frameworks Python mais rápidos, competindo com Node.js e Go em benchmarks.
A documentação do FastAPI é referência no mundo Python - clara, com exemplos, e sempre atualizada.
Hoje o FastAPI tem:
- +70.000 ⭐ no GitHub
- É usado por empresas como Microsoft, Uber, Netflix
- Milhões de downloads mensais no PyPI
| Framework | Ano | Foco | Async | Validação Auto | Docs Auto |
|---|---|---|---|---|---|
| Django | 2005 | Full Stack | Parcial | Via Forms | ❌ |
| Flask | 2010 | Minimalista | Via Extensão | ❌ | ❌ |
| FastAPI | 2018 | APIs Modernas | ✅ | ✅ | ✅ |
- Padrão da Indústria - Virou o padrão para novas APIs em Python
- Moderna - Usa as melhores práticas e features do Python moderno
- Rápida - Performance de produção real
- Fácil de Aprender - Sintaxe intuitiva
- Type Safety - Menos bugs graças aos type hints
- Documentação Automática - Economiza horas de trabalho
Neste tutorial, você vai aprender FastAPI do zero:
- ✅ Criar endpoints (GET, POST)
- ✅ Validar dados com Pydantic
- ✅ Usar a documentação automática
- ✅ Organizar código como um projeto profissional
Ao final, você terá as bases para criar qualquer API em Python!
- 🌟 FastAPI foi um projeto solo que virou fenômeno global
- 📚 A documentação tem exemplos em vários idiomas
- 🏢 Microsoft usa FastAPI internamente e contribui para o projeto
- 🚀 Em 2023, Sebastián criou a FastAPI Labs empresa que mantém o projeto
- 🎓 FastAPI é ensinado em universidades e bootcamps ao redor do mundo
Pronto para começar? Agora que você entende o contexto, vamos colocar a mão no código!