Implementar apenas a API (Backend) Versão Java +8 (caso seja Java 8, verificar compatibilidade da sua IDE) Versão Spring Boot >= 2.4 Banco de dados fica a seu critério (Sql, NoSql) Seu projeto deve obrigatoriamente ter as anotações: @Repository, @Entity e @Controller Documentação mínima da API (Swagger ou documento PDF)
Implementar para empresa de transporte de cargas SigaBem o endpoint para o cálculo do preço do frete:
Você deve calcular o valor total do frete e a data prevista da entrega.
Considerar regras para calcular o valor do frete:
- CEPs com DDDs iguais tem 50% de desconto no valor do frete e entrega prevista de 1 dia
- CEPs de estados iguais tem 75% de desconto no valor do frete e entrega prevista de 3 dias
- CEPs de estados diferentes não deve ser aplicado o desconto no valor do frete e entrega prevista de 10 dias
- O valor do frete é cobrado pelo peso da encomenda, o valor para cada KG é R$1,00
Seu input de entrada deve ser “peso”, “cepOrigem”, “cepDestino” e “nomeDestinatario“
Você utilizará a API gratuita de consulta de CEP abaixo: Documentação da API: https://viacep.com.br/ Exemplo do GET: https://viacep.com.br/ws/<CEP_A_CONSULTAR>/json/
Endpoint pode ser público Response/Output deve possuir: “vlTotalFrete” e “dataPrevistaEntrega”, “cepOrigem” e “cepDestino” Deve ser persistido no banco os valores da cotação os valores consultados: “peso”, “cepOrigem”, “cepDestino”, “nomeDestinatario”, “vlTotalFrete”, “dataPrevistaEntrega” e “dataConsulta”
- Implementação das regras de negócios para o cálculo do frete
- Boas práticas de programação, arquitetura e padrões de projetos
- Disponibilizar um link do repositório no GitHub e encaminhar para [email protected]
- Language: Go Lang
- Banco de dados: PostgreSQL-dev/prod
git clone https://github.com/AL33H/go-test.git
- Com docker instalado, execute o docker
docker-compose -up
para instânciar um novo banco de dados localmente.
{
"info": {
"_postman_id": "f4860117-4f6b-4121-9ba0-c0d984d84c05",
"name": "API-GO-TEST",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
{
"name": "New",
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"nome\":\"Aleff R\",\r\n\t\t\t\"cepOrigem\":\"71699-310\",\r\n\t\t\t\"cepDestino\":\"71699-310\",\r\n\t\t\t\"peso\": 32.53\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "localhost:8080/consultar/new",
"host": [
"localhost"
],
"port": "8080",
"path": [
"consultar",
"new"
],
"query": [
{
"key": null,
"value": "1",
"disabled": true
}
]
}
},
"response": []
},
{
"name": "FindAll",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "localhost:8080/consultar/",
"host": [
"localhost"
],
"port": "8080",
"path": [
"consultar",
""
]
}
},
"response": []
},
{
"name": "FindById",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "localhost:8080/consultar/1",
"host": [
"localhost"
],
"port": "8080",
"path": [
"consultar",
"1"
]
}
},
"response": []
},
{
"name": "deleteById",
"request": {
"method": "DELETE",
"header": [],
"url": {
"raw": "localhost:8080/consultar/delete/1",
"host": [
"localhost"
],
"port": "8080",
"path": [
"consultar",
"delete",
"1"
]
}
},
"response": []
}
]
}