Ficha 02 · API REST, BD e autenticação
- Desenhar API REST
- Usar ORM
- Implementar autenticação
- Aplicar segurança
Parte I · API REST
Exercício 1 · Desenhar endpoints (15 pts)
Para um recurso "tarefa", desenha os endpoints REST (método + rota + código de sucesso):
a) Listar todas. ___
b) Obter uma. ___
c) Criar. ___
d) Actualizar. ___
e) Apagar. ___
Exercício 2 · Implementar API (20 pts)
Implementa em Flask os endpoints GET (listar), GET (um), POST (criar) para "tarefa" (id, titulo, feita). Trata 404 e validação.
Exercício 3 · Códigos de estado (10 pts)
Que código HTTP devolver em cada situação?
a) Recurso criado com sucesso. ___
b) Recurso apagado com sucesso (sem conteúdo a devolver). ___
c) Pedido com JSON inválido. ___
d) Recurso não existe. ___
e) Utilizador não autenticado. ___
Parte II · Base de dados
Exercício 4 · Modelo + CRUD (20 pts)
Define um modelo Flask-SQLAlchemy Tarefa(id, titulo, feita) e escreve as 4 operações CRUD.
Exercício 5 · Rota com BD (10 pts)
Escreve uma rota POST /tarefas que cria uma tarefa na BD a partir de um formulário e redirecciona para a lista.
Parte III · Autenticação
Exercício 6 · Hash de senha (15 pts)
a) Porque não se guarda a senha em texto plano? (5 pts)
b) Escreve código de registo (hash) e login (verificar) com werkzeug. (10 pts)
Exercício 7 · Proteger rota (10 pts)
Com Flask-Login, escreve uma rota /painel acessível só a utilizadores autenticados, mostrando o email do utilizador actual.