0% acharam este documento útil (0 voto)
2 visualizações4 páginas

Exercícios de Web Service em Python

O documento apresenta exercícios sobre desenvolvimento de APIs e comunicação em tempo real utilizando Python. Inclui a criação de funções para autenticação e autorização de usuários em um sistema de notas, tratamento de erros e logs em uma API de biblioteca, e implementação de comunicação via WebSocket. Cada exercício contém requisitos específicos e cenários de teste para validar as implementações.

Enviado por

Bruno
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
2 visualizações4 páginas

Exercícios de Web Service em Python

O documento apresenta exercícios sobre desenvolvimento de APIs e comunicação em tempo real utilizando Python. Inclui a criação de funções para autenticação e autorização de usuários em um sistema de notas, tratamento de erros e logs em uma API de biblioteca, e implementação de comunicação via WebSocket. Cada exercício contém requisitos específicos e cenários de teste para validar as implementações.

Enviado por

Bruno
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Polo: Ilhéus

Instrutora: Karine Prado


Trilha: Back-end com Python

Exercícios – Módulo Web Service

Com base no cenário abaixo, resposta a Questão 1:

Autenticação, Token e Autorização (Controle de Acesso às Notas)

Uma API de uma escola armazena notas dos alunos, que são consideradas informações
sensíveis. Por esse motivo, o sistema utiliza autenticação por token e autorização por perfil de
usuário para controlar o acesso aos dados.

Considere o seguinte cenário:

• O sistema possui dois tipos de usuários:

o Professor, responsável por visualizar todas as notas

o Aluno, que não possui permissão para acessar as notas por este endpoint

• As notas representam uma lista de valores numéricos (por exemplo: [7.5, 8.0, 6.0])

• Após realizar o login, o usuário recebe um token, que deve ser enviado para acessar
recursos protegidos

Regras do sistema:

• Usuário "professor" com senha "123"

• Usuário "aluno" com senha "abc"

• O token deve conter a identificação do usuário

• Apenas o usuário "professor" pode acessar as notas

• Usuários autenticados, mas sem permissão, devem receber acesso negado

Questão 1:
Desenvolva um programa em Python que:

1. Crie uma função login(usuario, senha) que:

o Verifique as credenciais do usuário

o Retorne um token contendo o nome do usuário, caso o login seja válido


o Retorne None caso o login seja inválido

2. Crie uma função acessar_notas(token) que:

o Verifique se o token é válido

o Identifique o usuário a partir do token

o Retorne a lista de notas [7.5, 8.0, 6.0] somente se o usuário for "professor"

o Caso contrário, retorne uma mensagem de acesso não autorizado

3. Realize os testes:

o Login como "professor" e tente acessar as notas

o Login como "aluno" e tente acessar as notas

4. Exiba no console o resultado de cada tentativa de acesso.

Com base no cenário abaixo, resposta a Questão 2:

Tratamento de Erros e Logs em WebServices

Uma API de uma biblioteca foi criada para consultar informações sobre livros cadastrados. Como
se trata de um sistema real, é necessário tratar erros corretamente e registrar logs para facilitar
o monitoramento da aplicação.

A API deve seguir boas práticas de desenvolvimento, retornando respostas padronizadas em


JSON e registrando logs de informação e erro conforme o comportamento do sistema.

Cenário:

• A API possui uma rota responsável por buscar livros pelo ID

• Os livros cadastrados são:

o 1 → "Dom Casmurro"

o 2 → "O Pequeno Príncipe"

o 3 → "Capitães da Areia"

Regras do sistema:

• Sempre que a rota for acessada, deve ser registrado um log de nível INFO, informando
o ID do livro solicitado

• Se o livro não existir, a API deve:

o Retornar uma resposta JSON no formato


{ "erro": "Livro não encontrado" }
o Retornar o código HTTP 404

o Registrar um log de nível ERROR

• Se o livro existir, a API deve:

o Retornar o nome do livro em formato JSON

o Retornar o código HTTP 200

Questão 2:
Desenvolva uma API em Python utilizando Flask que:

1. Configure o módulo logging para registrar mensagens de nível INFO e ERROR.

2. Crie uma rota /livro/<int:id> responsável por buscar um livro pelo seu identificador.

3. Registre um log de informação (INFO) sempre que a rota for acessada, indicando o ID
solicitado.

4. Verifique se o livro existe no dicionário de livros cadastrados.

5. Caso o livro não exista:

o Retorne uma resposta JSON padronizada informando o erro

o Retorne o código HTTP 404

o Registre um log de erro (ERROR)

6. Caso o livro exista:

o Retorne o nome do livro em formato JSON

Exemplos de teste:

• /livro/1 → Retorna o livro e gera log INFO

• /livro/99 → Retorna erro 404 em JSON e gera log ERROR

Com base no cenário abaixo, resposta a Questão 3:

Comunicação em Tempo Real com WebSocket

Sistemas que exigem comunicação em tempo real, como chats e notificações, utilizam
WebSockets para permitir a troca de mensagens contínua entre cliente e servidor, sem a
necessidade de recarregar a página a cada interação.

Neste exercício, será implementado um canal de comunicação simples utilizando WebSocket,


simulando o envio e o recebimento de mensagens em tempo real.
Cenário:

Um cliente (navegador) deve se conectar a um servidor WebSocket e enviar uma mensagem por
meio de um evento chamado "mensagem". Ao receber essa mensagem, o servidor deve
processá-la e enviar uma resposta de confirmação ao cliente.

Regras do sistema:

• A comunicação deve ocorrer utilizando WebSocket

• O cliente deve enviar uma mensagem ao servidor através do evento "mensagem"

• O servidor deve:

o Receber a mensagem enviada pelo cliente

o Exibir a mensagem recebida no terminal

o Enviar uma resposta confirmando o recebimento

• O cliente deve:

o Receber a resposta do servidor

o Exibir a resposta imediatamente na tela, sem recarregar a página

Questão 3:

Desenvolva uma aplicação simples utilizando WebSocket que:

1. Estabeleça uma conexão entre cliente e servidor.

2. Permita que o cliente envie uma mensagem ao servidor utilizando o evento


"mensagem".

3. Faça com que o servidor receba essa mensagem e a imprima no terminal.

4. Programe o servidor para enviar uma mensagem de confirmação após receber o evento.

5. Faça com que o cliente receba a resposta do servidor e a exiba em tempo real na
interface, sem necessidade de atualização da página.

Você também pode gostar