O que é FastAPI?
FastAPI é um framework web moderno e rápido (alta performance) para construção de APIs com Python 3.7+ baseado em dicas de tipo padrão do Python.
As principais características que destacam o FastAPI de outros frameworks incluem:
- Alta Performance: FastAPI é um dos frameworks Python mais rápidos disponíveis, comparável ao NodeJS e Go.
- Rápido para Codificar: Aumenta a produtividade do desenvolvedor ao reduzir a duplicação de código.
- Intuitivo: Ótimo suporte ao editor com autocompletar em todos os lugares e menos tempo depurando.
- Fácil: Projetado para ser fácil de usar e aprender, reduzindo o tempo para desenvolver funcionalidades.
- Conciso: Minimiza a duplicação de código com várias funcionalidades a partir de cada declaração de parâmetro.
- Robusto: Gera código pronto para produção com documentação interativa automática.
- Baseado em Padrões: Baseado em (e totalmente compatível com) os padrões abertos para APIs: OpenAPI e JSON Schema.
FastAPI vs Outros Frameworks
Quando comparado a outros frameworks web populares do Python, o FastAPI oferece várias vantagens:
Framework | Performance | Verificação de Tipos | Documentação | Validação |
---|---|---|---|---|
FastAPI | Muito Alta | Sim | Automática | Automática |
Flask | Média | Não | Manual | Manual |
Django REST | Média | Não | Manual | Serializadores |
Configuração do Ambiente
Antes de começar a construir aplicações com FastAPI, você precisa configurar seu ambiente de desenvolvimento. Aqui está um guia:
1. Instalar FastAPI e Uvicorn
Instale o FastAPI e o Uvicorn (servidor ASGI) usando o pip:
pip3 install fastapi uvicorn
2. Verificar a Instalação
Crie uma aplicação FastAPI simples para verificar sua instalação:
# Crie um arquivo chamado main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
Deploy da aplicação:
# Execute a aplicação com algum dos métodos a seguir:
uvicorn main:app --reload
fastapi run main.py
Abra seu navegador e navegue até http://localhost:8000. Você deve ver uma resposta JSON: {"Hello": "World"}.
Sua Primeira Aplicação FastAPI
Vamos criar uma aplicação FastAPI simples para entender os conceitos básicos:
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Item(BaseModel):
name: str
price: float
is_offer: bool = None
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
@app.post("/items/")
def create_item(item: Item):
return item
Esta aplicação simples demonstra várias características principais do FastAPI:
- Operações de Caminho: Definidas usando decorators como @app.get e @app.post.
- Parâmetros de Caminho: Definidos no caminho como {item_id} e convertidos para tipos Python.
- Parâmetros de Consulta: Definidos como parâmetros de função com valores padrão.
- Corpo da Requisição: Definido usando modelos Pydantic para validação automática.
- Documentação Automática: O FastAPI gera automaticamente documentação interativa da API.
Para executar esta aplicação, salve-a como main.py e execute:
uvicorn main:app --reload
Você pode acessar a documentação interativa da API em http://localhost:8000/docs.