Olá, se você está recebendo este TESTE é porque você passou pela primeira etapa dessa jornada, Parabéns! Gostaríamos que você participasse deste DESAFIO para que possamos testar suas habilidades, será um grande diferencial e um prazer enorme em participar desta fase com você, então vamos lá!
Seu objetivo é criar um micro-serviço (API), seguindo os padrões restful que se chamará ORDERS
. Esse serviço será responsável por criar e atualizar pedidos.
Para isso você precisára usar duas APIS:
-
PRODUCTS: https://fakestoreapi.com/products
- Deverá chamar a API de
PRODUCTS
, para pegar os produtos - Deverá chamar a API de
USERS
para pegar o usuario - Deverá calcular o total do pedido para um cliente e salvar em um banco de dados. Obs: o id do pedido deve ser salvo no padrao UUID e os campos devem estar com os titulos em português.
exemplo: input
{
"userId": 1,
"products": [{ "id": 1 }, { "id": 2 }]
}
exemplo output
{
"id": "b888cb1d-7b22-4d9b-b4f0-ce4e31d1f6aa",
"userId": 1,
"status": "PENDING",
"totalPrice": 132.25,
"items": [
{
"id": 1,
"price": 109.95,
"amount": 1,
"partialAmount": 22.3
},
{
"id": 2,
"price": 22.3,
"amount": 1,
"partialAmount": 22.3
}
]
}
- Deverá atualizar o
status
do pedido.
exemplo input
{
"id": "b888cb1d-7b22-4d9b-b4f0-ce4e31d1f6aa",
"userId": 1,
"status": "CONCLUDED"
}
- Deverá adicionar itens ao pedido
Caso a quantidade de itens iguais sejam > 1, deverá somar e salvar somente como 1 item incrementando a quantidade.
exemplo input
{
"id": "b888cb1d-7b22-4d9b-b4f0-ce4e31d1f6aa",
"userId": 1,
"items": [
{
"id": 1,
"price": 109.95
},
{
"id": 1,
"price": 109.95
},
]
}
exemplo output
{
"id": "b888cb1d-7b22-4d9b-b4f0-ce4e31d1f6aa",
"userId": 1,
"status": "PENDING",
"totalPrice": 219.9,
"items": [
{
"id": 1,
"price": 109.95,
"amount": 2,
"partialAmount": 219.9
}
]
}
Faça o fork do projeto para algum repositório público e nos envie assim que concluir o desafio.
- Requisitos funcionais
- Padrão de projeto
- Utilização dos recursos disponíveis no spring-boot
- Conhecimento da linguagem, orientação a objetos
- Testes unitários
- Docker
- Arquitetura de Sofware
- Testes de Componentes
Boa sorte!