Aplicação de integração usando Spring Boot
- Criar um endpoint REST para criação de pedidos
- Utilizar o spring validation para validar as informações enviadas
- Salvar o pedido no banco de dados
- Criar um Scheduler para pedidos abandonados
- Buscar no banco de dados os pedidos com status INCOMPLETE sem atualização por mais de 48h
- Atualizar status para ABANDONED
- Salvar pedido e enviar para fila
- Criar um consumidor pedidos através da fila
- Receber o pedido na fila e enviar para um sistema externo com o novo status (ex: https://webhook.site/)
- Utilizar spring security para fazer autenticação das APIS Rest
- Utilizar o spring admin para monitorar a aplicação
- Utilizar o rabbitmq como fila de mensageria
- Utilizar o banco mysql/postgres (via HikariCP ou JPA/HIBERNATE)
- Utilizar o spring scheduled
- Utilizar o spring envs (local, hml, prd)
- Utilizar o junit para realizar testes unitários
- Utilizar o slf4j + slf4j.MDC para loggs da aplicação (infos, debugs e errors)
- Utilizar o redis cache para cache de informações
- Utilizar um client HTTP REST + JSON
- Utilizar maven para build da aplicação
- Utilizar o lombok + builder
- Spring Boot
- Spring boot Validation
- Spring Scurity
- JWT
- JPA/HIBERNATE
- Lombok
- ModelMapper
- Maven
- Custon Messages Errors
- Cucumber
- JUnit
- OpenAPI (Swagger)
- Spring Actuator
- Log4J2
- Sonar
- Cache
- Redis
- Scheduled
- Tratamento de Exclusão em cascata
- /swagger-ui/index.html
- /api-docs
- /actuator
- Hospedado em: (https://railway.app?referralCode=tPS5tO)