Skip to content

A API Foi Desenvolvida para o Controle do Fluxo de Entrega de Mercadorias para Clientes, empregando Recurso como Versionamento Database, Collection Resources, Validação, Exception Handler, Padrão ISO-8601 para Data e Hora, Validation Group, Domain Services, Padrão DTO, Validação em Cascata, Sub-Recursos de API, Ação Não-CRUD(Processos de Negócios)

License

Notifications You must be signed in to change notification settings

Temgi/APILogistica-old

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API-REST para Logística

End-Point para Controle de Entregas


NPM

🧠 Sobre o Projeto

A Aplicação é uma API-REST criada com SpringBoot sem Front-End, Oriunda da Semana do Mergulho Spring REST(MSR), evento organizado pela Algaworks. Essa API Foi Desenvolvida para o Controle de Entrega de Mercadorias em Logísticas, utilizando Recursos como Versionamento de Database, Collection Resources, Validação, Tratamento de Exceções, Padrão ISO-8601 para Data e Hora, Validation Group, Camada Domain Services, Padrão DTO, Validação em Cascata, Separação entre as Camadas de Domain Model e Representation Model, Sub-Recursos de API, Ação Não-CRUD(Processos de Negócios). Sendo Formada de End-Points envolvendo o Processo de Pedidos, tendo como Base as Entidades Entrega, Cliente, Destinatário, Ocorrência e Status.

Link do Projeto para Acesso Online

📗 Sumário

💻 End-Point /Clientes para Listagem


End-Point Listagem

🎨 End-Point /Clientes para Cadastro


End-Point Cadastro

👓 Organização de Pacotes


Pacotes do Projeto

⚙️ Features

  • Collection Resources
  • End-Point(CRUD) para /Clientes
  • Representação em JSON e XML
  • Versionamento de Database(Migration)
  • Validação de Dados
  • Exception Handler Customizado
  • Camada de Domain Services
  • End-Point(CRUD) para /Entregas
  • Validação em Cascata
  • Validation Group
  • Padrão ISO-8601 para Data e Hora
  • Separação entre Domain Model e Representation Model
  • Padrão DTO com Model Mapper
  • Emgrego de Sub-Recursos de API
  • Implementação de Ação Não-CRUD(Processos de Negócios)

💡 End-Point /Clientes para Atualização


End-Point Atualização

🛰️ End-Point /Clientes para Exclusão


End-Point Exclusão

🎯 Estrutura de Classes


Estrutura de Classes

🚀 Tecnologias Utilizadas:

Back-End

  • Java 11
  • Spring Framework
  • Spring Boot
  • Spring Data JPA
  • Jackson JSON
  • Postman
  • Lombok
  • Maven
  • Apache TomCat
  • Flyway
  • Model Mapper
  • JPA-Hibernate
  • Bean Validation
  • MySQL

🔥 Modelo Entidade Relacionamento


MER

🏁 Como Executar o Projeto

Instalações

1-Baixar e Instalar o Java-JDK no Link Abaixo:
https://www.oracle.com/br/java/technologies/javase/javase8-archive-downloads.html

2-Configurar Variáveis de Ambiente do Java-JDK Conforme Link Abaixo:
https://www.alura.com.br/apostila-java-orientacao-objetos/apendice-instalacao-do-java

3-Baixar e Instalar o MySQL Seguindo os Links Abaixo:
https://dev.mysql.com/downloads/windows/installer/8.0.html
https://www.alura.com.br/artigos/mysql-do-download-e-instalacao-ate-sua-primeira-tabela

4-Baixar e Instalar o Postman Seguindo os Links Abaixo:
https://www.postman.com/downloads/
https://www.alura.com.br/artigos/postman-como-instalar-dar-seus-primeiros-passos

Configuração Banco de Dados

1-Script SQL para Criação do Banco de Dados

CREATE SCHEMA `algalog`;

2-Script SQL para Popular Tabela CLIENTE

INSERT INTO cliente(nome, email, fone)
VALUES('João da Silva', 'joaodasilva@email.com', '11-99955-3333');

INSERT INTO cliente(nome, email, fone)
VALUES('Maria Abadia', 'mariaabadia@email.com', '11-99888-4444');

Execução e Deploy do Projeto

Clonar Repositório

Executar o Projeto

  • Baixar e Descompactar o Apache Maven apache-maven-3.8.4 no Unidade C:\

  • Copiar o Endereço da Pasta [bin] no Caminho [C:\apache-maven-3.8.4\bin]

  • Configurar as Variáveis de Ambiente para o Apache Maven apache-maven-3.8.4:

    Abra o Meu Computador no Windows(Win+E) / Botão Direito dentro de Meu Computador e Selecione [Propriedades] / Click no lado Esquerdo em [Configurações Avançadas de Sistema] / Na Aba [Avançado], clique na Parte Inferior em [Variáveis de Ambiente] / Em [Variáveis de Sistema] Click em [Novo] / No Campo [Nome da Variável] digite [MAVEN_HOME] / No Campo [Valor da Variável] digite [C:\apache-maven-3.8.4] e Click OK / Selecione na Lista o Item [PATH] e Click em [Editar] / Click em [Novo] digite [%MAVEN_HOME%\bin] / Click em OK - OK - OK. Abra o Executar no Windows com [Win+R] digite [cmd], no Prompt de Comando digite o comando [mvn -version]

  • Acessar no Prompt de Comando o Caminho da Pasta [target] do Projeto [APILogistica]

  • No Prompt Executar o Comando [java -jar AppLogistica.jar]

  • Baixar o Collection Resources do Postman logo Abaixo:
    https://github.com/Temgi/APILogistica/blob/main/assets/API%20-%20Externo(Nuvem).zip

  • Abrir o Postman e Importar a Collection conforme Link Abaixo:
    https://learning.postman.com/docs/getting-started/importing-and-exporting-data/

📝 Autor

Foto de Rui Temgi Saraiva Azevedo no GitHub

Rui Azevedo
Contatos: LinkedIn - WhatsApp - ruisaraivasp@gmail.com

About

A API Foi Desenvolvida para o Controle do Fluxo de Entrega de Mercadorias para Clientes, empregando Recurso como Versionamento Database, Collection Resources, Validação, Exception Handler, Padrão ISO-8601 para Data e Hora, Validation Group, Domain Services, Padrão DTO, Validação em Cascata, Sub-Recursos de API, Ação Não-CRUD(Processos de Negócios)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages