Capítulo 24
FastAPI: CRUD de tarefas
2 min de leitura 381 palavras 1 gravura
Neste capítulo você vai implementar lista, criação e conclusão de tarefas do Ateliê. O projeto-fio é o Ateliê Boa Viagem, ateliê digital fictício em Boa Viagem, Recife.
Seu ponto de partida
Use o exemplo 24-fastapi-crud do pacote anexo e copie inicio/ para uma pasta de prática fora do original. A raiz do exemplo é a referência completa desta etapa.
Use servidor só em 127.0.0.1 quando o README do exemplo pedir HTTP local. Abrir ou testar não publica nada.
Como praticar
Leia → copie ou digite → mude uma coisa → preveja → salve → recarregue → confira. Restaure cada experiência antes da próxima. Faça as atividades antes de abrir as respostas comentadas.

Modelo Pydantic
Pydantic valida entrada e saída. TarefaTemporaria vive em memória neste volume.
Faça na sua cópia
Confira o trecho no contexto do exemplo antes de mudar.
class TarefaIn(BaseModel):
titulo: str
feita: bool = False
Mude uma coisa e preveja
Exija titulo com min_length=3.
Anote o que espera observar antes de salvar e recarregar.
Recarregue e confira
POST curto retorna 422.
Se não acontecer
Field/constraints do Pydantic.
CRUD em lista
GET lista, POST cria, PATCH marca feita, DELETE remove. IDs incrementais em memória.
Faça na sua cópia
Confira o trecho no contexto do exemplo antes de mudar.
@app.get('/tarefas')
def listar():
return tarefas
Mude uma coisa e preveja
Implemente DELETE /tarefas/{id}.
Anote o que espera observar antes de salvar e recarregar.
Recarregue e confira
Item some da lista.
Se não acontecer
Responda 404 se id ausente.
Memória volátil
Reiniciar o Uvicorn zera as tarefas. Para persistência, outro desenho (arquivo/DB) — fora do mínimo deste volume.
Faça na sua cópia
Confira o trecho no contexto do exemplo antes de mudar.
RAM ≠ disco
Mude uma coisa e preveja
Crie três tarefas e reinicie o servidor.
Anote o que espera observar antes de salvar e recarregar.
Recarregue e confira
Lista vazia após reinício.
Se não acontecer
Comportamento esperado aqui.
Atividades
Atividade 1
Quem valida o corpo JSON?
Atividade 2
O que significa 422?
Atividade 3
Os dados sobrevivem ao restart?
Respostas comentadas
Resposta da atividade 1
Pydantic via FastAPI.
Resposta da atividade 2
Entidade não processável (validação).
Resposta da atividade 3
Não, neste desenho em memória.