API REST com Spring Boot: Microserviço de Informações Acessadas Apartir de Autenticação Baseada em Tokens
Esta API é um microserviço desenvolvido com Spring Boot 3 e Java 17, que consome informações do banco de dados de forma segura utilizando tokens de autenticação provenientes de uma API de autorização externa (OAuth 2.0). O sistema é projetado para ser modular, escalável e integrado com tecnologias modernas como Redis, AWS S3, e JasperReports.
-
Spring Boot:
spring-boot-starter-web
: Para construção da API REST.spring-boot-starter-security
: Para segurança e autenticação.spring-boot-starter-data-jpa
: Para persistência de dados.spring-boot-starter-validation
: Para validações nos DTOs.spring-boot-starter-mail
: Para envio de emails.spring-boot-starter-thymeleaf
: Para templates de email.spring-boot-starter-data-redis
: Para cache e gerenciamento de sessões.
-
Spring Security OAuth:
spring-security-oauth2-resource-server
: Para autenticação baseada em tokens.spring-security-oauth2-authorization-server
: Para integração com servidores de autenticação.
-
Flyway: Para versionamento do banco de dados.
-
ModelMapper: Para mapeamento entre entidades e DTOs.
-
JasperReports: Para geração de relatórios.
-
SpringDoc: Para documentação de APIs usando OpenAPI/Swagger.
- MySQL: Como banco relacional principal.
- AWS S3 SDK: Para armazenamento de arquivos.
- Logback com Loggly: Para logs centralizados.
- RestAssured: Para testes de integração das APIs.
spring-boot-starter-test
: Para testes unitários.
- Dockerfile Maven Plugin: Para containerização e deploy.
- Java 17 (Certifique-se de ter configurado corretamente o JDK).
- Maven (Gerenciamento de dependências e build).
- MySQL (Banco de dados configurado e acessível).
- Redis (Cache e sessões, opcional).
- Configurações: Arquivos de configuração do Spring Boot.
- Controladores: Endpoints expostos para consumo de dados.
- Serviços: Contém a lógica de negócio.
- Repositórios: Interface para comunicação com o banco de dados.
- Segurança: Configurações para validação de tokens e autenticação.
A documentação Swagger está disponível em:
http://<SEU-SERVIDOR>:<PORTA>/swagger-ui.html