Este projeto é uma API RESTful desenvolvida com Spring Boot, implementando as funcionalidades básicas conforme o modelo de maturidade de Richardson.
A API permite a criação, leitura, atualização e exclusão de produtos, utilizando os métodos HTTP padrões (POST, GET, PUT, DELETE). A API segue o modelo de maturidade de Richardson, alcançando o nível 3 ao utilizar HATEOAS (Hypermedia as the Engine of Application State) para adicionar links relevantes nas respostas das requisições.
-
Controller: Responsável por lidar com as requisições HTTP e retornar as respostas apropriadas.
- Arquivo:
ProductController.java
- Arquivo:
-
DTO (Data Transfer Object): Define os objetos que serão usados para transferência de dados entre a camada de apresentação e a camada de serviço.
- Arquivo:
ProductRecordDto.java
- Arquivo:
-
Model: Representa a entidade de domínio da aplicação e a estrutura da tabela no banco de dados.
- Arquivo:
ProductModel.java
- Arquivo:
-
Repository: Interface que gerencia as operações de persistência da entidade
ProductModel.- Arquivo:
ProductRepository.java
- Arquivo:
-
Criar Produto:
- Endpoint:
POST /products - Descrição: Cria um novo produto na base de dados.
- Payload:
name(String),value(BigDecimal) - Exemplo de retorno:
201 Created
- Endpoint:
-
Listar Produtos:
- Endpoint:
GET /products - Descrição: Retorna uma lista de todos os produtos cadastrados, com links HATEOAS.
- Exemplo de retorno:
200 OK
- Endpoint:
-
Obter Detalhes de um Produto:
- Endpoint:
GET /products/{id} - Descrição: Retorna os detalhes de um produto específico, identificado pelo seu ID.
- Exemplo de retorno:
200 OK
- Endpoint:
-
Atualizar Produto:
- Endpoint:
PUT /products/{id} - Descrição: Atualiza as informações de um produto específico.
- Payload:
name(String),value(BigDecimal) - Exemplo de retorno:
200 OK
- Endpoint:
-
Excluir Produto:
- Endpoint:
DELETE /products/{id} - Descrição: Exclui um produto específico da base de dados.
- Exemplo de retorno:
200 OK
- Endpoint:
- Spring Boot 3.1.5: Framework principal para desenvolvimento da aplicação.
- HATEOAS: Para adicionar links relevantes nas respostas da API.
- Jakarta Validation: Para validação dos dados de entrada.
- JPA/Hibernate: Para mapeamento objeto-relacional (ORM) e manipulação da base de dados.
- Pg Admin: Banco de dados para desenvolvimento e testes.
-
Pré-requisitos:
- Java 17 ou superior
- Maven 3.8.1 ou superior
-
Passos:
- Clone o repositório:
git clone https://github.com/usuario/projeto-api-restful.git
- Navegue até a pasta do projeto:
cd projeto-api-restful - Execute o comando para iniciar a aplicação:
mvn spring-boot:run
- Acesse a API através do endpoint:
http://localhost:8080/products.
- Clone o repositório:
- Implementação de paginação e filtragem nos endpoints de listagem.
- Customização de mensagens de erro e criação de uma camada de serviço.
- Adição de testes unitários e de integração.
- Manter a padronização de datas e internacionalização (i18n).