Esta é uma API RESTful para gerenciamento de envio de mensagens, desenvolvida com Spring Boot, PostgreSQL e Java 17.
- Java 17
- Spring Boot
- PostgreSQL
- Liquibase
- Docker
Certifique-se de ter o Docker e o Docker Compose instalados.
git clone https://github.com/GLeonBS/BigChatBrasil.git
cd bigchatbrasildocker-compose up- API:
http://localhost:8080/api - Swagger UI:
http://localhost:8080/api/swagger-ui/index.html#/
O banco de dados estará disponível internamente para a aplicação via hostname
postgres.
Use apenas se preferir rodar localmente sem Docker.
- Instale a JDK 17
- Suba um banco PostgreSQL com:
user:postgrespassword:postgresdatabase:big_chat_db
- Atualize o
application.ymlouapplication.propertiescom suas configurações - Rode a aplicação:
./mvnw spring-boot:runA API possui os seguintes endpoints RESTful (prefixo /api):
POST /cliente: Cria um novo cliente.GET /cliente/{id}: Retorna os detalhes de um cliente.GET /cliente: Retorna todos os clientes cadastrados.PUT /cliente/{id}: Atualiza um cliente.DELETE /cliente/{id}: Deleta um cliente.POST /cliente/auth: Realiza o login de um Cliente.POST /add-saldo-credito/{id}: Adiciona saldo de crédito a um cliente com plano Pré-Pago.GET /cliente/saldo/{id}: Retorna o saldo atual do cliente.POST /destinatario: Cria um novo destinatário.POST /chat: Cria um novo chat.GET /chat/{id}: Retorna os detalhes de um chat.GET /chat: Retorna todos os chats cadastrados para o cliente logado.GET /chat/mensagens: Retorna todas as mensagens de um chat.POST /mensagem: Envia uma nova mensagem.GET /mensagem/{id}: Retorna os detalhes de uma mensagem.GET /mensagem/{id}/status: Retorna o status de uma mensagem.
Todos os dados são enviados e recebidos em JSON.
{
"nome": "Leon",
"documento": "01695216059",
"tipoDocumento": "CPF",
"conta": {
"plano": "PRE_PAGO",
"credito": 45.4,
"limite": 0,
"limiteConsumido": 0
},
"ativo": true,
"numeroTelefone": "44999999999",
"senha": "123Senha",
"role": "ROLE_CLIENTE"
}{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"nome": "Leon",
"documento": "01695216059",
"tipoDocumento": "CPF",
"conta": {
"plano": "PRE_PAGO",
"credito": 45.4,
"limite": 0,
"limiteConsumido": 0
},
"ativo": true
}Este projeto é open-source e pode ser usado livremente.