Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ar3secchim/crud-ecommerce-app
Este repositório contém o código-fonte de um projeto de aplicativo de comércio eletrônico simples que demonstra operações CRUD (Create, Read, Update, Delete) em relação a produtos, pedidos e clientes.
https://github.com/ar3secchim/crud-ecommerce-app
Last synced: about 2 months ago
JSON representation
Este repositório contém o código-fonte de um projeto de aplicativo de comércio eletrônico simples que demonstra operações CRUD (Create, Read, Update, Delete) em relação a produtos, pedidos e clientes.
- Host: GitHub
- URL: https://github.com/ar3secchim/crud-ecommerce-app
- Owner: Ar3secchim
- Created: 2023-09-15T13:49:48.000Z (over 1 year ago)
- Default Branch: develop
- Last Pushed: 2023-12-16T12:50:42.000Z (about 1 year ago)
- Last Synced: 2023-12-16T14:09:52.185Z (about 1 year ago)
- Language: Java
- Size: 395 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
> ### Entrega do projeto Final do modulo Teste Automatizados I
> [Repositorio do Test End-To-End](https://github.com/Ar3secchim/crud-Ecommerce-App-test)🚀 Get started here
===================Este é um projeto de exemplo de um aplicativo de comércio eletrônico que demonstra operações CRUD (Create, Read, Update, Delete) em relação a produtos, pedidos e clientes. O aplicativo oferece funcionalidades básicas de gerenciamento de um comércio eletrônico, permitindo adicionar, visualizar, atualizar e excluir produtos, realizar pedidos e gerenciar informações de clientes.
## Funcionalidades Principais
- 🔒 Cadastro, leitura, atualização e exclusão de produtos e usuários.
- 🚀 Realização de pedidos.
- 📦 Gerenciamento de clientes.
- 💻 Autenticação com Jwt## Tecnologias Utilizadas
- 💻 Linguagem de Programação: Java
- 📦 Banco de Dados: Banco de Dados Relacional (por exemplo, MySQL)## Funcionalidades em produção
- 💻 Implementação de Clean Architecture
- 💻 Pensamento de DDD- Domain Drive Design## Pré-requisitos
Antes de iniciar, certifique-se de ter as seguintes dependências instaladas:Java Development Kit (JDK) - Versão 17 ou superior.
Maven## Configuração
1. Clone o repositório:```
git clone https://github.com/Ar3secchim/crud-Ecommerce-App
cd buy-foreign-currency
```2. Subir o container do banco de dados
```
docker compose -f docker-compose.yml
```4. Fazer as migrações para o banco de dados (projeto está usando flyway com gerenciador de migration)
### POST Login
```
http://localhost:8081/login/
```Este é um pedido POST para realizar o login. O Response fornece um token de autorização.
```json
{
"email": "[email protected]",
"password": "@Awq1dffgdd",
}
```
Senha tem seguir regras de um caractér especial, uma letra maiuscula, uma letra minuscula e um numero.**Reponse** (json)
```json
{
"token": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJyc2Rhc2Rzc0BnbWFpbC5jb20iLCJpZCI6MSwibmFtZSI6IlJlIFNlY2NoaW0iLCJleHAiOjE2OTc3MjMyNTUsImlzcyI6ImNydWQifQ.Agz6MfCfvPqM6odXkb9Rt3InOMciiue9fOTnI3wG0LoQRph3Syat8kwy-KSaHfvotDO-w5CQ-LiWKr6\_u2GXqw"
}
```
Customer
--------Esta seção descreve os métodos relacionados aos clientes.
### GET Get List Customer
```
http://localhost:8081/customer
```Este é um pedido GET e é usado para "obter" dados de um ponto final. Não há corpo de pedido para um pedido GET, mas você pode usar parâmetros de consulta para especificar o recurso do qual deseja obter dados (por exemplo, neste pedido, temos `id=1`).
Uma resposta GET bem-sucedida terá um status de `200 OK` e deve incluir algum tipo de corpo de resposta - por exemplo, conteúdo da web HTML ou dados JSON.
### GET Get List Customer By Id
```
http://localhost:8081/customer
```Este é um pedido GET e é usado para "obter" dados de um ponto final. Não há corpo de pedido para um pedido GET, mas você pode usar parâmetros de consulta para especificar o recurso do qual deseja obter dados (por exemplo, neste pedido, temos `id=1`).
Uma resposta GET bem-sucedida terá um status de `200 OK` e deve incluir algum tipo de corpo de resposta - por exemplo, conteúdo da web HTML ou dados JSON.
### GET Get List Customer By Name
```
http://localhost:8081/customer/name/renara
```
Este é um pedido GET e é usado para "obter" dados de um ponto final. Não há corpo de pedido para um pedido GET, mas você pode usar parâmetros de consulta para especificar o recurso do qual deseja obter dados (por exemplo, neste pedido, temos `id=1`).Uma resposta GET bem-sucedida terá um status de `200 OK` e deve incluir algum tipo de corpo de resposta - por exemplo, conteúdo da web HTML ou dados JSON.
### POST Create Customer
```
http://localhost:8081/customer
```Este é um pedido POST, que envia dados para uma API por meio do corpo do pedido. Este pedido envia dados em formato JSON, e os dados são refletidos na resposta.
Um pedido POST bem-sucedido normalmente retorna um código de resposta `200 OK` ou `201 Created`.
**Body** (json)
```json
{
"name": "Name LastName",
"email": "[email protected]",
"address": "rua maria jose, 000",
"password":"@Awq1dffgdd"
}
```
PUT Update customer
---------------```
http://localhost:8081/customer/10
```Este é um pedido PUT e é usado para substituir uma peça de dados existente. Por exemplo, após criar uma entidade com um pedido POST, você pode querer modificá-la posteriormente. Isso pode ser feito usando um pedido PUT. Normalmente, você identifica a entidade sendo atualizada incluindo um identificador na URL (por exemplo, `id=1`).
Um pedido PUT bem-sucedido normalmente retorna um código de resposta `200 OK`.
**Body** (json)
```json
{
"name": "Name LastName",
"email": "[email protected]",
"address": "rua maria jose, 000",
"password":"@Awq1dffgdd"
}
```
DELETE Delete customer
----------------------```
http://localhost:8081/customer/8
```
Este é um pedido DELETE e é usado para excluir dados que foram criados anteriormente por meio de um pedido POST. Normalmente, você identifica a entidade a ser excluída incluindo um identificador na URL (por exemplo, `id=1`).Um pedido DELETE bem-sucedido normalmente retorna um código de resposta `200 OK`, `202 Accepted` ou `204 No Content`.
Product
-------Esta seção descreve os métodos relacionados aos produtos.
### GET Get List Product
```
http://localhost:8081/product
```**Request Headers**
Authorization
Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJyc2Rhc2Rzc0BnbWFpbC5jb20iLCJpZCI6MSwibmFtZSI6IlJlIFNlY2NoaW0iLCJleHAiOjE2OTc3MjMyNTUsImlzcyI6ImNydWQifQ.Agz6MfCfvPqM6odXkb9Rt3InOMciiue9fOTnI3wG0LoQRph3Syat8kwy-KSaHfvotDO-w5CQ-LiWKr6\_u2GXqw
### GET Get Product By Id
```
http://localhost:8081/product/1
```Este é um pedido GET e é usado para "obter" dados de um ponto final. Não há corpo de pedido para um pedido GET, mas você pode usar parâmetros de consulta para especificar o recurso do qual deseja obter dados.
### POST Create Product
```
http://localhost:8081/product
```
Este é um pedido POST, que envia dados para uma API por meio do corpo do pedido. Este pedido envia dados em formato JSON, e os dados são refletidos na resposta.**Request Headers**
| Authorization |
| --- |
| Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJyc2Rhc2Rzc0BnbWFpbC5jb20iLCJpZCI6MSwibmFtZSI6IlJlIFNlY2NoaW0iLCJleHAiOjE2OTc3MjMyNTUsImlzcyI6ImNydWQifQ.Agz6MfCfvPqM6odXkb9Rt3InOMciiue9fOTnI3wG0LoQRph3Syat8kwy-KSaHfvotDO-w5CQ-LiWKr6_u2GXqw |**Body** (json)
```json
{
"name": "PS5",
"description": "console game com ssd 1 terabyte",
"price": 4586.57
}
```### DELETE Delete Product By Id
```
http://localhost:8081/product/1
```Este é um pedido DELETE para excluir um produto com um ID específico.
**Body** (json)
```json
{
"name": "PS5",
"description": "console game com ssd 1 terabyte",
"price": 4586.57
}
```
Order
-----Esta seção descreve os métodos relacionados aos pedidos.
### POST Create Order
```
http://localhost:8081/order
```Este é um pedido POST para criar um novo pedido. O pedido cria um pedido com base nos dados fornecidos no corpo da solicitação.
**Request Headers**
| Authorization |
| --- |
| Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJyc2Rhc2Rzc0BnbWFpbC5jb20iLCJpZCI6MSwibmFtZSI6IlJlIFNlY2NoaW0iLCJleHAiOjE2OTc3MjMyNTUsImlzcyI6ImNydWQifQ.Agz6MfCfvPqM6odXkb9Rt3InOMciiue9fOTnI3wG0LoQRph3Syat8kwy-KSaHfvotDO-w5CQ-LiWKr6_u2GXqw |**Body** (json)
```json
{
"customer": 1
}
```### GET Get Order
```
http://localhost:8081/order
```Este é um pedido GET para obter a lista de pedidos. Ele retorna a lista de todos os pedidos disponíveis.
**Request Headers**
| Authorization |
| --- |
| Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJyc2Rhc2Rzc0BnbWFpbC5jb20iLCJpZCI6MSwibmFtZSI6IlJlIFNlY2NoaW0iLCJleHAiOjE2OTc3MjMyNTUsImlzcyI6ImNydWQifQ.Agz6MfCfvPqM6odXkb9Rt3InOMciiue9fOTnI3wG0LoQRph3Syat8kwy-KSaHfvotDO-w5CQ-LiWKr6_u2GXqw |### GET Get Order By Id
```
http://localhost:8081/order/1
```Este é um pedido GET para obter detalhes de um pedido específico com base no ID fornecido.
### DELETE Delete Order
```
http://localhost:8081/order/1
```
Este é um pedido DELETE para excluir um pedido com um ID específico.### OrderItem
Esta seção descreve os métodos relacionados aos itens de pedido.
### POST Add Item Order
```
http://localhost:8081/order/1
```
Este é um pedido POST para adicionar um item a um pedido específico com base no ID fornecido.**Request Headers**
| Authorization |
| --- |
| Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJyc2Rhc2Rzc0BnbWFpbC5jb20iLCJpZCI6MSwibmFtZSI6IlJlIFNlY2NoaW0iLCJleHAiOjE2OTc3MjMyNTUsImlzcyI6ImNydWQifQ.Agz6MfCfvPqM6odXkb9Rt3InOMciiue9fOTnI3wG0LoQRph3Syat8kwy-KSaHfvotDO-w5CQ-LiWKr6_u2GXqw |**Body** (json)
```json
{
"product": 1,
"amount": 1
}
```### DELETE Delete OrderItem
```
http://localhost:8081/order/ordemItem/2
```
Este é um pedido DELETE para excluir um item de pedido com um ID específico.### PUT Update Order
```
http://localhost:8081/order/ordemItem/2
```
Este é um pedido PUT e é usado para atualizar um item de pedido existente. Normalmente, você identifica o item sendo atualizado incluindo um identificador na URL.**Request Headers**
| Authorization |
| --- |
| Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJyc2Rhc2Rzc0BnbWFpbC5jb20iLCJpZCI6MSwibmFtZSI6IlJlIFNlY2NoaW0iLCJleHAiOjE2OTc3MjMyNTUsImlzcyI6ImNydWQifQ.Agz6MfCfvPqM6odXkb9Rt3InOMciiue9fOTnI3wG0LoQRph3Syat8kwy-KSaHfvotDO-w5CQ-LiWKr6_u2GXqw |**Body** (json)
```json
{
"product": 1,
"amount": 1
}
```