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.
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.
- 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
- 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
- Java
- Spring
- Spring Web
- Spring Boot DevTools
- Spring Data JPA
- OAuth2 Resource Server
- RSA
- JWT
- BCrypt
- MySQL
- H2 Database
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 | * |
# 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
Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Feito com 💜 by CleilsonAndrade