Skip to content

DSCommerce API é uma API robusta e versátil que atende às necessidades tanto de administradores quanto de clientes, para o gerenciamento de um sistema comercial. Oferece recursos como autenticação de usuário, perfis de usuário, gerenciamento de produtos com categorias, geração de ordem de compra e consulta. Utilizado o framework o Spring.

License

Notifications You must be signed in to change notification settings

CleilsonAndrade/dscommerce-api

Repository files navigation

DSCommerce API

DSCommerce API é uma API robusta e versátil que atende às necessidades tanto de administradores quanto de clientes, para o gerenciamento de um sistema comercial. Oferece recursos como autenticação de usuário, perfis de usuário, gerenciamento de produtos com categorias, geração de ordem de compra e consulta. Foi utilizado o framework do Java o Spring, Spring Web, para gerenciamento do web server, Spring Data JPA para manipulação de informações dos bancos de dados MySQL e H2 Database. Para segurança e autenticação foi utilizado tecnologias como OAuth2 Resource Server, JWT e BCrypt.

Flow

📒 Índice

📃 Descrição

DSCommerce API é uma API robusta e versátil que atende às necessidades tanto de administradores quanto de clientes, para o gerenciamento de um sistema comercial. Oferece recursos como autenticação de usuário, perfis de usuário, gerenciamento de produtos com categorias, geração de ordem de compra e consulta. Foi utilizado o framework do Java o Spring, Spring Web, para gerenciamento do web server, Spring Data JPA para manipulação de informações dos bancos de dados MySQL e H2 Database. Para segurança e autenticação foi utilizado tecnologias como OAuth2 Resource Server, JWT e BCrypt com a utilização da criptografia do tipo RSA.

📌 Requisitos Funcionais

  • Autenticação de usuário
  • Perfis de cliente e administrador associados ao usuário
  • Cadastramento de produtos e categoria pertencente, por usuário com perfil de administrador
  • Listagem de produtos
  • Consulta de um produto especifico
  • Atualização de informações de produtos, por usuário com perfil de administrador
  • Deleção de um produto especifico, por usuário com perfil de administrador
  • Listagem de todas as categorias
  • Gerar ordem de compra, por usuário com perfil de cliente
  • Consulta de ordem de compra especifica, por usuário com perfis cliente e administrador

Features

  • Autenticação de usuário utilizando OAuth2, chave RSA e JWT Token
  • Exibição de informações do próprio usuário em sessão ativa
  • Status para as ordens: AGUARDANDO PAGAMENTO, PAGO, ENVIADO, ENTREGUE, CANCELADO
  • Adicionando mapeamento de CORS
  • Modelo de domínio complexo
  • Projeção com SQL nativo
  • Ambientes diferentes de desenvolvimento: DEV, TEST, PROD

💻 Tecnologias

  • Java
  • Spring
  • Spring Web
  • Spring Boot DevTools
  • Spring Data JPA
  • OAuth2 Resource Server
  • RSA
  • JWT
  • BCrypt
  • MySQL
  • H2 Database

📍 Endpoints

Método Endpoint Resumo Autenticação Role
POST /oauth2/token Responsável por autenticar usuário e gerar o Bearer Token JWT. Utiliza o Basic Auth e o corpo de requisição do tipo x-www-form-urlencoded com as chaves: username, password e grant_type Sim *
GET /users/me Responsável por listar as informações do usuário que esta na sessão Sim ROLE_ADMIN, ROLE_CLIENT
GET /products Responsável por listar todos os produtos Não *
GET /products/:id Responsável por exibir um produto especifico por seu ID Não *
POST /products Responsável por cadastrar um produto Sim ROLE_ADMIN
PUT /products/:id Responsável por atualizar um produto, informando o ID no Path e via corpo de requisição as informações Sim ROLE_ADMIN
PUT PUT /products/:id Responsável por deletar um produto, informando o ID no Path Sim ROLE_ADMIN
GET /categories Responsável por listar todos as categorias Não *
POST /orders Responsável por gerar uma ordem de uma compra Sim ROLE_CLIENT
GET /orders/:id Responsável por listar os produtos na ordem de uma compra especifica e seu status, informando o ID Sim ROLE_ADMIN, ROLE_CLIENT
GET /h2-console Responsável por acesso ao H2 Database Sim *

🚀 Instalação

  # Clone este repositório:
  $ git clone https://github.com/CleilsonAndrade/dscommerce-api.git
  $ cd ./dscommerce-api

  # Instalar as dependências:
  $ mvn clean install

  # Executar:
  $ mvn spring-boot:run

📝 Licença

Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.


Feito com 💜 by CleilsonAndrade

About

DSCommerce API é uma API robusta e versátil que atende às necessidades tanto de administradores quanto de clientes, para o gerenciamento de um sistema comercial. Oferece recursos como autenticação de usuário, perfis de usuário, gerenciamento de produtos com categorias, geração de ordem de compra e consulta. Utilizado o framework o Spring.

Topics

Resources

License

Stars

Watchers

Forks