Partilhar: WhatsApp
aulify · Mini-Projecto
UC UC02831 · T. Desenv. Software, T. Inform. Gestão
Versão · Aluno

Mini-Projecto · API REST com BD

Construir endpoint que serve dados de uma BD real
⏱ Duração estimada: 10 horas (≈ 6 aulas) ↗ Referencial SNQ
Índice

Contexto

Cada par/trio constrói uma API REST em FastAPI com BD PostgreSQL (ou SQLite para simplificar), usando SQLAlchemy + Alembic. Aplica tudo o que foi aprendido: modelos, queries, migrações, pool, segurança.

Requisitos

Funcionais

  1. Domínio à escolha (validar com professor) — mín. 4 entidades, 1 relação N:M.
  2. API REST com pelo menos 12 endpoints (CRUD em 3 recursos + listar/filtrar).
  3. Modelos SQLAlchemy com restrições e relations.
  4. Migrações Alembic versionadas.
  5. Prepared statements em qualquer SQL manual (não há, com ORM).
  6. Autenticação simples (Bearer token).
  7. 15+ testes com pytest + httpx.

Não-funcionais

  1. Documentação OpenAPI (FastAPI gera automaticamente).
  2. README com instruções.
  3. Git com commits descritivos.
  4. Variáveis de ambiente para configuração.

Fases

Fase 1 · 1.5h

Setup e modelos

Estrutura inicial + 1ª migração.

Fase 2 · 2h

Repository pattern

repositories/ + testes unitários.

Fase 3 · 2h

Endpoints REST

API funcional, testada com curl/Postman.

Fase 4 · 1.5h

Autenticação

Auth funcional.

Fase 5 · 2h

Testes

tests/ com cov ≥ 70%.

Fase 6 · 1h

Polish

Repo completo + demo.

Critérios de avaliação

Item Peso
Modelos + migrações 15%
Endpoints REST 20%
Repository pattern 10%
Autenticação 15%
Validação Pydantic 10%
Testes 20%
Documentação + Git 10%

Reflexão

Em meia página: que dificuldade foi maior — modelos, queries ou autenticação? O que mudarias agora que terminaste? Como esta API se ligaria a um frontend React/Vue?