Projeto de API Rest utilizando o framework Spring em Java que recebe reclamações de usuários e as grava em um banco de dados relacional. A API consiste em um mapeamento das 4 operações CRUD com os verbos HTTP, Get, Put, Post e Delete, para fazer as inserções e atualizações no banco de dados, e conta com as bibliotecas JPA Hibernate para fazer o trabalho de criação das tabelas e dos scripts SQL por detrás.
- Java: Versão 21
- Banco de dados: Postgres 1:
- Database: dianome
- Usuário: postgres
- Senha: senha123
- Clone este projeto
- Importe para a IDE de sua escolha
- Atualize as bibliotecas com o Maven
- Inicialize a aplicação 🎉
A API funciona da seguinte forma:
-
Para listar todas as reclamações:
- URI: http://localhost:8080/reclamacoes
- Método: GET
-
O cliente insere os dados e a reclamação:
- URI: http://localhost:8080/reclamacoes
- Método: POST
- Dados no formato JSON:
{ "nomeReclamante": "String", "codigoRastreamento": Integer, "telefoneReclamante": "String", "descricaoReclamacao": "String" }
-
A empresa pega a reclamação pelo id. e insere a solução por meio de uma URI separada:
- URI: http://localhost:8080/solucoes/{id}
- Método: PUT
- Dados no formato JSON:
{ "descricaoSolucao": "String" }
-
Caso o cliente queira atualizar a reclamação, ele pode fazê-lo, buscando pelo id também:
- URI: http://localhost:8080/reclamacoes/{id}
- Método: PUT
- Dados no formato JSON:
{ "nomeReclamante": "String", "codigoRastreamento": Integer, "telefoneReclamante": "String", "descricaoReclamacao": "String" }
-
Para exclur um dado:
- URI: http://localhost:8080/reclamacoes/{id}
- Método: DELETE
-
Para listar uma reclamação específica:
- URI: http://localhost:8080/reclamacoes/{id}
- Método: GET
A aplicação principal está dividida em 5 pacotes:
- Aplicação: Faz a execução do Spring;
- Controlers: São responsáveis pela mediação entre as requisições vindas do cliente e o model, que gere o banco de dados;
- Models: Gerenciam a criação das tabelas no banco de dados;
- DTOs: Criam uma espécie de "máscara" de dados que é aplicada em cada requisição antes de ser feita a inserção no db;
- Repositories: Responsáveis pela implementação da interface Hibernate.
Futuramente, é possível expandir a API adicionando controllers, DTOs, models e criando views para apresentar os dados de uma forma mais atraente.
Footnotes
-
Para alterar as configurações do banco de dados, edite o arquivo application.properties ↩