Projeto de Java - Grupo Pied Piper
Swagger com documentação API REST 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.
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
- Spring Framework
- Java 8
- Postgresql
- H2
- MongoDB (tentativa de utilização)
- Heroku
- Git
- Github
- Trello
- Maven
- Eclipse
- Springdoc
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.