Este projeto é uma API de um e-commerce, na qual possui diversas funcionalidades como: autenticar usuário, autorizar rotas, cadastrar e remover produtos, fazer o upload de arquivos na nuvem utilizando o S3 da AWS, etc.
- Java 17
- Maven
- Docker
- Spring Boot
- Spring Data JPA
- Spring Security
- AWS SDK
- JWT
- MySQL
- SpringDoc OpenAPI
- Logging
- JRE 17
- Maven
- Clone o repositório:
git clone github.com/nicholasboari/ecommerce-boari-api
- Acesse a pasta da api:
cd ecommerce-boari-api/api/
- Execute o projeto:
mvn spring-boot:run
- Acesse a pasta raiz do projeto (ecommerce-boari-api):
cd ecommerce-boari-api/
- Execute o docker compose:
docker compose up
- id: 1
- email: nicholasboari@gmail.com
- firstName: Nicholas
- lastName: Boari
- username: nicholasboari
- password: 123
- role: ADMIN
- Acesse a URL: localhost:8090/api/v1/auth/login
- Realize a requisição através do método GET no formato JSON
{
"email": "nicholasboari@gmail.com",
"password": "123"
}
- Exemplo de retorno:
{
"token": eyJhbGciOiJIUzI1NiJ9.eyJpZCI6MSwiaXNBY3RpdmUiOnRydWUsInN1YiI6Im5pY2hvbGFzYm9hcmkiLCJpYXQiOjE3MDA2ODEwNTEsImV4cCI6MTcwMTU0NTA1MX0.8edCSh1DGRr3DN7cE5ciZBtV0IG8spjqHgPKMOUdc48
}
- Acesse a URL: localhost:8090/api/v1/users
- A requisição dos dados é via POST no formato JSON
{
"email": "joaozinho@gmail.com",
"password": "123",
"username": "joao",
"phone": "12992220086",
"firstName": "Joao",
"lastName": "Silva"
}
- Acesse a URL: localhost:8090/api/v1/users
- Para obter os dados do usuário autenticado é necessário passar o token obtido no login e inseri-lo no Bearer Token da requsição
- A requisição dos dados é via GET
- Exemplo de retorno
- Acesse a URL: localhost:8090/api/v1/addresses
- Para criar endereço do usuário autenticado é necessário passar o token obtido no login e inseri-lo no Bearer Token da requsição
- A criação do endereço é via POST e no formato JSON
{
"cep": "12040-000",
"country": "Brasil",
"state": "SP",
"street": "Rua joaozinho",
"neighborhood": "Alphaville"
}
- Acesse a URL: localhost:8090/api/v1/products
- Para criar um produto o usuário autenticado é necessário uma role (permissão) de "ADMIN" ou "MANAGER"
- A criação do endereço é via POST e no formato JSON
{
"name": "Celular Xiaomi",
"price": 1299.00,
"brand": {
"id": 1
},
"category": {
"id": 1
}
}
- Exemplo de retorno
- Acesse a URL: localhost:8090/api/v1/orders
- Para criar uma order o usuário autenticado é ncessário ter um endereço associado e do token obtido no login
- A criação do endereço é via POST e no formato JSON
{
"products": [
{
"id": 1
}
]
}
- Exemplo de retorno
-
Acesse a URL: localhost:8090/api/v1/orders
-
Para obter o histórico de orders do usuário autenticado é necessário ter um endereço associado e do token obtido no login
-
A criação do endereço é via GET
-
Exemplo de retorno
Nome do Autor: Nicholas Boari
Contato:
- E-mail: nicholasboari@gmail.com
- LinkedIn: https://www.linkedin.com/in/nicholasboari/
- GitHub: https://github.com/nicholasboari