Antes de executar, edite o arquivo src/main/resources/application.properties
alterado com as credenciais para acesso ao MySQL
execute no terminal o arquivo presente na raiz do projeto sh run.sh
#REST Paths
Retorna lista com todos produtos
- Body: No specific body attributes needed.
-
Status: 200
-
Body:
[
{
"code": 1,
"description": "ssdasd"
}
]
Cria novo produto
- Body:
{
"description": "Produto 1"
}
-
Status: 200
-
Body:
{
"code": 43,
"description": "Produto 1"
}
Remove item da lista. Retorna o carrinho atualizado
- Body:
{
"product": {
"code": "1"
},
"unitPrice": 10,
"quantity": 2
}
-
Status: 200
-
Body:
{
"id": 10,
"clientId": "{clientId}",
"items": [
{
"id": 39,
"product": {
"code": 3,
"description": "Produto Teste"
},
"unitPrice": 3,
"quantity": 3,
"amount": 9
}
],
"amount": 9
}
Atualiza ou adicionar item na carrinho
- Body:
{
"product": {
"code": "1"
},
"unitPrice": 10,
"quantity": 2
}
-
Status: 200
-
Body:
{
"id": 10,
"clientId": "{clientId}",
"items": [
{
"id": 39,
"product": {
"code": 3,
"description": "Produto Teste"
},
"unitPrice": 3,
"quantity": 3,
"amount": 9
}
],
"amount": 9
}
Cria novo ou retorna carrinho do cliente
- Body: No specific body attributes needed.
-
Status: 200
-
Body:
{
"id": 10,
"clientId": "{clientId}",
"items": [
{
"id": 39,
"product": {
"code": 3,
"description": "Produto Teste"
},
"unitPrice": 3,
"quantity": 3,
"amount": 9
}
],
"amount": 9
}
Exclui carrinho
- Body: No specific body attributes needed.
-
Status: 200
-
Body:
true | false
Retorna itens do carrinho
-
Headers: No specific headers needed.
-
Url Params: No specific query parameters needed.
-
Body:
{
"product": {
"code": "1"
},
"unitPrice": 10,
"quantity": 2
}
-
Status: 200
-
Body:
[
{
"id": 45,
"product": {
"code": 1,
"description": "Produto Teste"
},
"unitPrice": 123,
"quantity": 12,
"amount": 1476
},
{
"id": 46,
"product": {
"code": 41,
"description": "Novo"
},
"unitPrice": 22,
"quantity": 12,
"amount": 264
}
]
Total do carrinho
-
Headers: No specific headers needed.
-
Url Params: No specific query parameters needed.
-
Body: No specific body attributes needed.
-
Status: 200
-
Body:
1740
**
-
Headers: No specific headers needed.
-
Url Params: No specific query parameters needed.
-
Body: No specific body attributes needed.
-
Status: 200
-
Body:
580
Nesta prova será necessário implementar os métodos das classes conforme descrições dos Javadocs correspondentes.
Deverá ter interfaces REST para as seguintes funcionalidades:
* Cadastro de produtos.
* Alteração de preços.
* Criação de carrinhos.
- Você poderá criar novos atributos, classes, métodos e reorganizar os pacotes.
- É proibido mudar a assinatura dos métodos e construtores já existentes, exceto o construtor da classe ShoppingCart.
- Você tem liberdade de adicionar frameworks e bibliotecas.
- Não será necessário implementar nenhum tipo de interface gráfica.
- A prova deve ser resolvida utilizando obrigatoriamente Java (Versão 8 ou superior).
- É opcional o uso de bancos de dados e ferramentas de persistência. (Caso opte por utilizar, deverá encaminhar no readme as instruções de inicialização do projeto).
- É opcional a implementação de cobertura de testes.
- Sua prova precisa compilar via Maven, impreterivelmente.
- A entrega do teste deverá ser por meio de um repositório público ou anexada ao email.