Skip to content

Aplicação API REST em Java do Grupo Pied Piper para o treinamento da Accademia Accenture implementado pela Gama Academia.

Notifications You must be signed in to change notification settings

felipemandu/projeto-final-java-gama-academia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Turma 1 da Gama Academia - Accademia Accenture 2.0

Projeto de Java - Grupo Pied Piper

Swagger com documentação API REST do projeto

Integrantes

Requisitos do projeto

O Projeto trata do desenvolvimento de uma API REST utilizando o conhecimento nas API Java, Banco de dados relacionais SQL e Framework Spring. A aplicação deve ser capaz de realizar as operações de CRUD e possuir regras de negócios a serem definidas pelos integrantes do grupo. Faz parte dos requisitos uma classe que representaria um Aluno de alguma instituição e possuiria dados comuns a este modelo. O Aluno também deveria ser uma entidade a ser persistida em um banco de dados.

Etapas do desenvolvimento

Utilizando o Spring Boot initializr foi gerado um projeto em Maven em Java 8 e com as dependências comuns necessárias a criação de uma API REST. Com o projeto estruturado em Maven, foi iniciado o desenvolvimento usando a IDE Eclipse.

Utilizamos na etapa de desenvolvimento o banco de dados relacionais H2 com a base de dados em memória. No deploy da aplicação o banco Postgresql foi escolhido por ser um serviço com uma faixa gratuita na plataforma Heroku.

A partir daí foram desenvolvidas as classes controllers, repositories e services do projeto, para tal foi utilizado o framework Spring em seu módulo Spring Web. Tais classes são responsáveis respectivamente por criar e servir endpoints para usuários da API, gerenciar o acesso as entidades no banco de dados e a coordenação do fluxo da aplicação entre a comunicação externa pela API e core business da aplicação.

A fim de isolar as classes do modelo da comunicação externa foram criadas classes DTO de entrada e saída da aplicação. Devido as DTOs foram desenvolvidos mappers, assim garantindo a capacidade de esconder possíveis aspectos sensíveis do modelo e ter uma ferramenta de transformação entre os dados que representam o modelo.

Já nesse momento do projeto nos focamos na validação de entrada de dados usando a biblioteca Bean Validation do Spring. Também foi adicionado a biblioteca SpringDoc para documentação Swagger do projeto.

Com a aplicação pronta foram realizadas as configurações necessárias para o ambiente de produção e foi realizado o deploy da aplicação para a plataforma Heroku onde a aplicação está hospedada. A documentação do projeto está na URL https://piedpiper-gama-java.herokuapp.com/index.html

Tecnologias utilizadas

  • Spring Framework
  • Java 8
  • Postgresql
  • H2
  • MongoDB (tentativa de utilização)
  • Heroku
  • Git
  • Github
  • Trello
  • Maven
  • Eclipse
  • Springdoc

Segunda etapa

Uma segunda aplicação rest replicando este modelo foi desenvolvida em javascript utilizando persistencia noSql com o banco de dados mongodb. Esta segunda aplicação também serviria como uma espécie de api gateway para a api rest em java, tal requisito surgiu apenas como conceito para exploração técnica na comunicação entre apis, não existindo uma motivação técnica ou de negócio que justificaste tal opção.

api rest em javascript