Skip to content

vviccenzo/apigateway

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

API Gateway para Comunicação e Registro de Requisições entre Microservices

Descrição do Projeto

Este projeto é um API Gateway desenvolvido em Java 11, utilizando as tecnologias JPA, Spring Cloud, Hibernate e Lombok, que tem como principal função facilitar a comunicação entre microservices em uma arquitetura distribuída. O API Gateway é responsável por receber as requisições dos clientes e direcioná-las aos microservices apropriados, além de registrar os dados das requisições em um banco de dados para fins de auditoria.

Principais Funcionalidades

  1. Roteamento de Requisições: O API Gateway gerencia a rota das requisições recebidas dos clientes para os respectivos microservices, facilitando o controle de endpoints e evitando a necessidade de conhecimento detalhado da estrutura interna dos microservices.
  2. Armazenamento de Requisições: A cada requisição recebida pelo API Gateway, os dados são registrados e salvos no banco de dados. Isso permite a posterior análise e auditoria das requisições realizadas ao sistema.
  3. Backup de Requisições: O projeto inclui um job schedule que é executado diariamente às 3h da manhã. Esse job é responsável por gerar um backup das requisições armazenadas no banco de dados, garantindo que esses registros estejam disponíveis para fins de auditoria mesmo em situações de falhas ou perda de dados.

Tecnologias Utilizadas

O projeto foi desenvolvido utilizando as seguintes tecnologias e bibliotecas:

  • Java 11: Linguagem de programação principal do projeto, garantindo o uso de recursos mais modernos e eficientes.
  • JPA (Java Persistence API): Utilizado para facilitar a persistência dos dados no banco de dados relacional, fornecendo uma camada de abstração sobre o Hibernate.
  • Spring Cloud: Framework que fornece ferramentas e bibliotecas para o desenvolvimento de sistemas distribuídos em uma arquitetura de microservices.
  • Hibernate: Framework de mapeamento objeto-relacional que simplifica a integração entre o Java e o banco de dados.
  • Lombok: Biblioteca que reduz a verbosidade do código Java através de anotações, tornando o código mais limpo e conciso.

Próximos Passos

O projeto está em constante evolução, e os próximos passos incluem:

  • Integração com Microservices: A integração completa com todos os microservices do sistema, garantindo um fluxo de comunicação eficiente e seguro.
  • Jenkins ou RabbitMQ: A integração de ferramentas como Jenkins ou RabbitMQ para melhorar a eficiência e escalabilidade do sistema, bem como otimizar a integração contínua e a troca de mensagens assíncronas entre os microservices.
  • Documentação Detalhada: A criação de uma documentação detalhada do projeto, incluindo informações sobre a arquitetura, endpoints disponíveis, configuração do banco de dados e instruções de implantação.

Como Contribuir

Contribuições são bem-vindas! Se você deseja contribuir para o projeto, siga os passos abaixo:

  1. Faça um fork deste repositório.
  2. Crie uma branch com um nome descritivo para a sua contribuição.
  3. Implemente suas melhorias ou correções.
  4. Crie testes para garantir a integridade das mudanças.
  5. Abra um Pull Request detalhando suas alterações e aguarde a revisão.

Licença

Este projeto está licenciado sob a licença MIT. Você é livre para usar, modificar e distribuir o código conforme os termos da licença.

About

Apigateway

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages