Crie endpoints para as seguintes ações:
-
Criação de produto onde o payload será o json informado acima (exceto as propriedades isMarketable e inventory.quantity)
POST /products -
Edição de produto por sku
PUT /products/{sku} -
Recuperação de produto por sku
GET /products/{sku} -
Deleção de produto por sku
DELETE /products/{sku}
Tarefa extra para facilitar na avaliação:
-
Recuperação de todos os produtos cadastrados
GET /products
-
Toda vez que um produto for recuperado por sku deverá ser calculado a propriedade: inventory.quantity
A propriedade inventory.quantity é a soma da quantity dos warehouses -
Toda vez que um produto for recuperado por sku deverá ser calculado a propriedade: isMarketable
Um produto é marketable sempre que seu inventory.quantity for maior que 0 -
Caso um produto já existente em memória tente ser criado com o mesmo sku uma exceção deverá ser lançada
Dois produtos são considerados iguais se os seus skus forem iguais -
Ao atualizar um produto, o antigo deve ser sobrescrito com o que esta sendo enviado na requisição
A requisição deve receber o sku e atualizar com o produto que tbm esta vindo na requisição
- Para rodar o projeto basta baixa-lo e ter instalados o
maven 3e ojava 1.8 - Na pasta do projeto, execute:
mvn clean packagepara empacotar e rodar testesmvn spring-boot:runpara executar a aplicação