Partilhar: WhatsApp
aulify
UC UC02834 · T. Desenv. Software, T. Inform. Gestão

Ficha 02 · API REST, BD e autenticação

Endpoints REST, SQLAlchemy, login
Versão · Aluno
Tempo · 60 minutos
Cotação · 100 pontos
Aluno(a)
Turma
Data
Objectivos da ficha

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.