Pular para o conteúdo
murad.guide

Aplicações Web

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.

Mapa visual de FastAPI: CRUD de tarefas

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.