Lista 007 - HTTP
Lista de Exercícios 007 (HTTP)
Seção intitulada “Lista de Exercícios 007 (HTTP)”Exercício 1 – Time de Futebol (PUT + GET)
Seção intitulada “Exercício 1 – Time de Futebol (PUT + GET)”Simule a substituição de jogadores em um time de futebol. Para isso você deve criar um serviço que inicialize uma única lista de jogadores que contenha os titulares (0-10) e os jogadores reservas (11-20). O cliente poderá substituir um jogador por outro usando a rota PUT.
Requisitos:
Seção intitulada “Requisitos:”- Inicialize um time principal (11 jogadores) e uma lista de 5 reservas.
- GET
/principal→ lista os jogadores titulares e suas posições. - GET
/reservas→ lista os jogadores reservas. - PUT
/jogador/{posicao}→ substitui o jogador da posição informada por um da lista de reservas. - Armazene tudo em uma única lista em memória (ex.: um array, um map, etc).
Atributos do jogador:
nomeposicaoidade
Exercício 2 – Biblioteca (POST + DELETE + GET)
Seção intitulada “Exercício 2 – Biblioteca (POST + DELETE + GET)”Implemente um sistema de empréstimo de livros. Para isso você deve criar um serviço que inicialize uma lista de livros disponíveis e uma lista de empréstimos ativos. o cliente poderá realizar o empréstimo de um livro usando a rota POST e remover o empréstimo usando a rota DELETE. Utilize o UUID para identificar os livros e os empréstimos.
Requisitos:
Seção intitulada “Requisitos:”- Inicialize uma lista de livros disponíveis e outra de empréstimos.
- GET
/livros→ lista livros disponíveis. - GET
/emprestados→ lista os empréstimos ativos. - POST
/emprestados→ cria um novo empréstimo recebendolivroIdeusuarioId.- Gerar
emprestimoIdcom UUID. - Remover o livro da lista de disponíveis.
- Gerar
- DELETE
/emprestados/{emprestimoId}→ devolve o livro, movendo-o de volta para disponíveis.
Atributos do livro:
id(UUID)tituloautor
Atributos do empréstimo:
emprestimoId(UUID)livroIdusuarioIddataEmprestimo
Exercício 3 – Usuários e Tweets (POST + PATCH + DELETE + GET)
Seção intitulada “Exercício 3 – Usuários e Tweets (POST + PATCH + DELETE + GET)”Simule uma mini rede social de tweets. Inicialize uma lista de usuários. O cliente poderá criar um novo tweet para um usuário usando a rota POST, atualizar a mensagem de um tweet usando a rota PATCH e remover um tweet usando a rota DELETE.
Requisitos:
Seção intitulada “Requisitos:”- Inicialize uma lista de usuários (id, nome, email).
- GET
/usuarios→ lista todos os usuários. - GET
/usuarios/{id}/tweets→ lista todos os tweets do usuário. - POST
/usuarios/{id}/tweets→ cria um tweet para o usuário.- Tweet deve ter
tweetId(UUID), mensagem e data.
- Tweet deve ter
- PATCH
/usuarios/{id}/tweets/{tweetId}→ atualiza a mensagem do tweet. Deve ser marcado como editado. - DELETE
/usuarios/{id}/tweets/{tweetId}→ remove o tweet do usuário.
Atributos do usuário:
id(UUID)nomeemail
Atributos do tweet:
tweetId(UUID)mensagemeditado(boolean)dataCriacao
Exercício 4 – Cinema (CRUD + Endpoints Aninhados)
Seção intitulada “Exercício 4 – Cinema (CRUD + Endpoints Aninhados)”Gerencie filmes e compra de ingressos. O cliente poderá listar, criar, editar e remover um filme. Também poderá adicionar ingressos e remover ingressos. Para cada ingresso comprado, o número de assentos ocupados deve ser atualizado.
Requisitos:
Seção intitulada “Requisitos:”-
Cada filme deve ter:
id(UUID),titulo,genero,capacidade,assentosOcupados. -
CRUD de filmes:
- GET
/filmes, POST/filmes, PATCH/filmes/{id}, DELETE/filmes/{id}.
- GET
-
Ingressos:
- POST
/filmes/{id}/ingressos→ compra ingresso, verifica capacidade, geraingressoId(UUID). - DELETE
/filmes/{id}/ingressos/{ingressoId}→ devolve ingresso e libera assento.
- POST
Atributos do filme:
id(UUID)titulogenerocapacidadeassentosOcupados
Atributos do ingresso:
ingressoId(UUID)filmeIdassentoNumero