API desenvolvida com Spring Boot para agendamento de envio de mensagens e persistência dos dados em banco de dados MySQL.
- Tipos de mensagens permitidas para agendamento:
- SMS
- PUSH
- Via linha de comando, navegue até o diretório raiz da aplicação e execute o comando abaixo:
$ mvnw clean test
-
Faça o download do projeto ZIP e extraia os arquivos no diretório de sua preferência, ou se preferir clone o projeto com o comando
$ git clone https://github.com/Cadulox/luizalabs-communication-api.git
-
Via linha de comando, navegue até o diretório raiz da aplicação e execute o comando abaixo para criar o jar do projeto:
$ mvnw clean package -DskipTests
- O arquivo é gerado no diretório target, vá para o diretório com o comando
$ cd target/
e execute o comando abaixo:
$ java -jar luizalabs-communication-api-0.0.1-SNAPSHOT.jar
3306
, caso contrário a aplicação falhará ao tentar iniciar.
8080
do Spring Boot.
- Caso queira rodar toda aplicação via Docker, navegue através da linha de comando até o diretório raiz da aplicação e execute o comando abaixo:
$ docker-compose up
- Será feito o download da imagem da aplicação Communication API, do banco de dados MySQL 5.6, criado os contêineres e aplicação estará rodando perfeitamente.
3306
do MySQL.
Recurso | Verbo HTTP | Path |
---|---|---|
Agendar mensagem | POST | communication-api/schedules |
Consultar agendamento | GET | communication-api/schedules/{id} |
Cancelar agendamento | PATCH | communication-api/schedules/{id} |
- É possível verificar o comportamento dos recursos utilizando Postman, Insomnia ou através da documentação da API no link abaixo:
OpenAPI Doc - http://localhost:8080/swagger-ui.html
- Java 11 - como linguagem
- Spring Boot - como framework para criação da API
- Lombok - para redução de código boilerplate
- JavaMail API - para a verificação de emails válidos
- JUnit5 - como framework para testes unitários
- AssertJ - biblioteca que fornece um rico conjunto de Assertions
- Mockito - para instanciar classes e controlar o comportamento dos métodos
- MySQL - como banco de dados
- Hibernate - para o mapeamento objeto-relacional
- Spring Data JPA - para facilitar a persistência de dados
- OpenAPI 3 - para a geração de documentação
- Docker - para a conteinerização do banco de dados e da aplicação
- Jib - para facilitar a criação de imagens docker
O Projeto Communication API está licenciado sob a licença The MIT License.