Este repositório contém o projeto final do treinamento Java Spring Professional ministrado pelo
professor Nelio Alves, oferecido pela plataforma DevSuperior.
Este projeto visa criar uma API RESTful de comércio
eletrônico usando tecnologias Java, Spring Boot, Spring Data JPA, Bean Validation, PostgresSQL como banco de dados, Spring Security e JWT para controle de autenticação.
O sistema desenvolvido neste projeto é uma aplicação completa de comércio eletrônico, abrangendo cadastros de usuários, produtos e categorias. Cada usuário, seja cliente ou administrador, tem sua própria área de interação com o sistema. Os administradores têm acesso à área administrativa para gerenciar usuários, produtos e categorias.
- Cadastro e autenticação de usuários com diferentes papéis (cliente, administrador).
- Catálogo de produtos com capacidade de filtragem por nome.
- Adição, remoção e alteração de itens no carrinho de compras.
- Registro de pedidos com status dinâmicos (aguardando pagamento, pago, enviado, entregue, cancelado).
- Área administrativa para gerenciamento de usuários, produtos e categorias.
Documento de requisitos pode ser acessado aqui -> Documento de Requisitos
- Java 17: JDK 17 ou superior.
- IDEs: IntelliJ IDEA ou Spring Tools.
-
Clone o repositório
Abra o terminal e navegue até o diretório onde deseja armazenar o projeto. Clone o reposiório. -
Abra o projeto no IntelliJ IDEA ou STS:
- IntelliJ IDEA: Abra o IntelliJ IDEA e selecione "Open" no menu principal. Navegue até o diretório do projeto e selecione o arquivo pom.xml.
- Spring Tools Suite: Abra o STS e selecione "Import..." > "Existing Maven Projects". Navegue até o diretório do projeto e selecione o arquivo pom.xml.
- Baixe as dependências do Maven:
Aguarde até que o IntelliJ ou STS baixe automaticamente as dependências do Maven. Isso pode levar algum tempo, dependendo da conexão com a internet. - Execute o projeto:
No projeto, navegue até o arquivosrc/main/java/br/com/guilchaves/dscommerce/DscommerceApplication.java
. Este arquivo contém a classe principal da aplicação Spring Boot.
- IntelliJ IDEA: Clique com o botão direito do mouse no arquivo DscommerceApplication.java e escolha "Run DscommerceApplication".
- Spring Tools Suite: Clique com o botão direito do mouse no projeto no navegador de projetos e escolha "Run As" > "Spring Boot App".
- Verifique a Execução:
Após a execução bem-sucedida, abra um navegador da web e acessehttp://localhost:8080
(ou a porta configurada, se diferente) para verificar se a aplicação está em execução.
Acessehttp://localhost:8080/h2-console
para utilizar o console do H2 database.
Para importar e exportar dados no postman, consulte a documentação oficial aqui.
Download da coleção e variáveis de ambiente:
POST /login - Autenticação na API.
GET /categories - Retorna lista de categorias dos produtos.
GET /orders/{id} - Retorna pedido do usuário por id - clientes não podem acessar pedidos de outros clientes (requer privilégio ADMIN ou OPERATOR).
POST /orders - Adiciona novo pedido para cliente logado.
GET /products - Retorna lista de produtos.
GET /products/{id} - Retorna produto por id.
POST /products - Adiciona novo produto (requer privilégio ADMIN).
PUT /products/{id} - Atualiza dados de produto já existente (requer privilégio ADMIN).
DELETE /products/{id} - Remove produto da base de dados (requer privilégio ADMIN).
GET /users/me - Retorna dados do usuário logado (requer privilégio ADMIN ou OPERATOR).
Realiza o insert de um novo produto POST - http://localhost:8080/products No body:
{
"name": "Meu novo produto",
"description": "Lorem ipsum, dolor sit amet consectetur adipisicing elit. Qui ad, adipisci illum ipsam velit et odit eaque reprehenderit ex maxime delectus dolore labore, quisquam quae tempora natus esse aliquam veniam doloremque quam minima culpa alias maiores commodi. Perferendis enim",
"imgUrl": "https://raw.githubusercontent.com/devsuperior/dscatalog-resources/master/backend/img/1-big.jpg",
"price": 200.0
}
A API utiliza o Spring Security para controle de autenticação. Os seguintes papéis estão disponíveis:
OPERATOR -> Papel padrão para usuários autenticados.
ADMIN -> Papel de administrador para gerenciar produtos (adicionar, atualiza, remove produtos).
Para acessar os endpoints protegidos como um usuário ADMIN, forneça as credenciais de autenticação adequadas no cabeçalho da requisição.
Pode ser baixado o projeto e subir localmente após importar o projeto em uma IDE de sua preferência.