API do Back to the Disc, uma página web para a compra de discos de vinil.
URL base: https://back-to-the-disc-backend.herokuapp.com
-
Rota:
/sign-up
-
Método:
POST
-
Exemplo de Body:
{ "name": "greg", "email": "greg@mail.com", "password": "gregg" }
-
Possíveis erros:
- Campos ausentes, vazios ou com tipos diferentes de string
- Campo email com email em formato inválido
- Campos name e password com menos de 4 caracteres
- Já existe um usuário com os dados informados
-
Rota:
/sign-in
-
Método:
POST
-
Exemplo de Body:
{ "email": "greg@mail.com", "password": "gregg" }
-
A API responde um Token no formato:
"pwoehfcnmçksh.dflkjskbckjl.jfoakspfoiwujknfcç"
-
Possíveis erros:
- Campos ausentes, vazios ou com tipos diferentes de string
- Campo email com email em formato inválido
- Campos password com menos de 4 caracteres
- Não existe um usuário com os dados informados
-
Rota:
/products/?page=
-
Método:
GET
-
Exemplo de Resposta:
[ { "_id": "6325e42adeed675242d08044", "by": "Gorillaz", "name": "CRACKER ISLAND", "image": "https://cdn.shopify.com/s/files/1/0096/1884/9839.png", "price": "69.90", "musics": [ "Cracker Island (feat. Thundercat)", "Oil (feat. Stevie Nicks)", "The Tired Influencer", "Tarantula", "Silent Running (feat. Adeleye Omotayo)", "New Gold (feat. Tame Impala and Bootie Brown)", "Baby Queen", "Tormenta (feat. Bad Bunny)", "Skinny Ape", "Possession Island (feat. Beck)" ], "status": "novo", "tags": [ "gorillaz", "cracker", "island", "electronic", "pop", "rock", "indie" ] } ]
-
Possíveis erros:
- Query string page ausente ou inválida
-
Rota:
/description/{productId}
-
Método:
GET
-
Exemplo de Resposta:
{ "_id": "6325e49ddeed675242d08045", "productId": "6325e42adeed675242d08044", "by": "Gorillaz", "name": "CRACKER ISLAND", "description": "'Cracker Island' é o oitavo álbum de estúdio de Gorillaz.", "image": "https://cdn.shopify.com/s/files/1/0096/1884/9839.png", "price": "69.90", "musics": [ "Cracker Island (feat. Thundercat)", "Oil (feat. Stevie Nicks)", "The Tired Influencer", "Tarantula", "Silent Running (feat. Adeleye Omotayo)", "New Gold (feat. Tame Impala and Bootie Brown)", "Baby Queen", "Tormenta (feat. Bad Bunny)", "Skinny Ape", "Possession Island (feat. Beck)" ], "status": "novo", "tags": [ "gorillaz", "cracker", "island", "electronic", "pop", "rock", "indie" ] }
-
Possíveis erros:
- Parâmetro productId com tipo diferente de número ou correspondente a um disco não existente
- Enviar Header Authorization no formato:
Bearer {token}
- Possíveis erros:
- Header Authorization ausente
- Token inválido
-
Rota:
/historic
-
Método:
POST
-
Exemplo de Body:
{ "products": ["CRACKER ISLAND"], "payment": "pix" // "debito" | "boleto" | "credito", "sendEmail": true // false }
-
Possíveis erros:
- Campos do body ausentes ou vazios
- Campo products com tipo diferente de array
- Campo payment com tipo diferente de string
- Campo sendEmail com tipo diferente de boolean
-
Rota:
/historic
-
Método:
GET
-
Exemplo de Resposta:
[ { "date": "2022-11-29T18:33:24.183Z", "products": [ { "name": "CRACKER ISLAND", "image": "https://cdn.shopify.com/s/files/1/0096/1884/9839.png", "price": "69.90", "by": "Gorillaz", "quantity": 1 } ], "payment": "pix" } ]
- Rota:
/logout
- Método:
PUT
Atenção: para rodar o projeto é preciso ter o MongoDB instalado em sua máquina.
- Clone esse repositório:
git clone https://github.com/AnaLTFernandes/back-to-the-disc-backend.git
- Instale as dependências:
npm install
-
Configure o arquivo .env com base no arquivo .env.example
-
Inicie o projeto:
npm run dev
-
Instale e configure o frontend em https://github.com/AnaLTFernandes/back-to-the-disc-frontend
-
Divirta-se nas rotas usando de URL base:
http://localhost:{ENV_PORT}