Este projeto é um CRUD (Create, Read, Update e Delete), construído para permitir que o usuário seja capaz de cadastrar um produto ou um serviço em um banco de dados PostgreSQL, cadastrar um pedido e adicionar itens nesse pedido, executando as operações de CRUD através de uma API REST.
- Java 17
- Spring Framework
- Spring Boot
- Spring Data JPA
- Maven
- Bean Validation
- QueryDSL
- PostgreSQL
- Docker
- REST com JSON
- JaCoCo
Certifique-se de ter instalado em sua máquina:
- Java JDK 11 ou superior
- Maven
- Docker
- Docker Compose
- Abra o terminal.
- Clone o repositório usando o comando:
git clone https://github.com/vanderleik/crud-produto-pedido-itens.git
- Entre na pasta do projeto:
cd crud-produto-pedido-itens
- Inicie os serviços necessários (como o banco de dados) usando Docker Compose:
docker-compose up -d
- Construa o projeto com Maven:
mvn clean install
- Execute a aplicação:
mvn spring-boot:run
Aqui você pode listar os endpoints disponíveis na aplicação:
GET /api/v1/orders/{id}
Endpoint responsável por buscar um pedido pelo idPUT /api/v1/orders/{id}
Endpoint responsável por atualizar um pedidoDELETE /api/v1/orders/{id}
Endpoint responsável por deletar um pedidoGET /api/v1/orders
Endpoint responsável por listar todos os pedidos cadastrados no sistemaPOST /api/v1/orders
Endpoint responsável por cadastrar um pedido no sistemaGET /api/v1/orders/filter
Endpoint responsável por buscar pedidos com filtros
GET /api/v1/catalog-items/{id}
Endpoint responsável por buscar um item pelo idPUT /api/v1/catalog-items/{id}
Endpoint responsável por atualizar um itemDELETE /api/v1/catalog-items/{id}
Endpoint responsável por deletar um item do catálogo do sistemaGET /api/v1/catalog-items
Endpoint responsável por listar todos os itens cadastrados no sistemaPOST /api/v1/catalog-items
Endpoint responsável por cadastrar um item no catálogo do sistemaGET /api/v1/catalog-items/filter
Endpoint responsável por buscar itens com filtros
GET /api/v1/orderitems/{id}
Endpoint responsável por buscar um item de pedido pelo idPUT /api/v1/orderitems/{id}
Endpoint responsável por atualizar um item de pedidoDELETE /api/v1/orderitems/{id}
Endpoint responsável por deletar um item de pedidoGET /api/v1/orderitems
Endpoint responsável por listar todos os itens de pedido cadastrados no sistemaPOST /api/v1/orderitems
Endpoint responsável por cadastrar um item de pedido no sistemaGET /api/v1/orderitems/order/{orderNumber}
Endpoint responsável por buscar itens de pedido com filtros
- Com a aplicação em execução, acesse
http://localhost:8080/swagger-ui.html
no seu navegador. - Você verá a interface do Swagger, onde poderá testar todos os endpoints disponíveis.
O projeto possui testes unitários e de integração, que podem ser executados com o comando mvn test
. Ao executar o comando mvn clean verify
, os testes são executados automaticamente e um relatório de cobertura de testes é gerado pelo JaCoCo, que pode ser acessado em: target/site/jacoco/index.html
.
Este é um exemplo do relatório obtido ao final da execução dos testes:
Informações sobre a licença do projeto, se aplicável.