- Este é um projeto básico de Backend, utilizando Typescript, MySQL, além das bibliotecas knexJs e expressJs, desenvolvido para atender aos modelos REST API.
- O projeto consiste em simular a metodologia CRUD na estruturação de Sistema E-Commerce,criando e acessando informações de usuários, produtos, viagens e compras feitas, sendo criado endpoints
GETePOSTpara alimentar as demandas.
LINK DA DOCUMENTAÇÃO NO POSTMAN: https://documenter.getpostman.com/view/15825773/Tzz4PeRJ
https://labecommerce-projeto.herokuapp.com/user
- Este endpoint retorna todos os usuários registrados no sistema.
- São exibidos dos usuários seus
id,name,emaile respectivosagecomo resposta.
No Content
No Content
No content
{
"users": [
{
"id": "1.6281285616511747",
"name": "teste",
"email": "teste@teste.com",
"age": 18
},
{
"id": "1.628172276736768",
"name": "teste2",
"email": "teste2@teste.com",
"age": 20
}
]
}
- Não há restrições.
https://labecommerce-projeto.herokuapp.com/product?order=
- Este endpoint retorna todos os produtos do sistema ordenados pelo preço.
- Os produtos podem receber o tipo de ordenamento desejado (
ASCpara ascendente eDESCpara descendente) por preço do produto. - São exibidos dos produtos seus
id,name,descriptione respectivospricecomo resposta.
No Content
No Content
No Content
{
"products": [
{
"id": "1.6281283732382985",
"name": "produto",
"description": "descrição",
"price": 18.5
},
{
"id": "1.6281762770675543",
"name": "trip",
"description": "descrição",
"price": 25
},
{
"id": "1.6281763134581866",
"name": "trip2",
"description": "descrição",
"price": 2500
}
]
}
- A query param
orderrecebe apenas valoresASC, para ordenamento ascendente, eDESC, para ordenamento descendente, como valores válidos. Caso nenhum valor seja fornecido, ou algum valor diferente destes seja enviado, o ordenamento padrão será definido como ascendenteASC.
https://labecommerce-projeto.herokuapp.com/trip
- Este endpoint retorna todas as viagens registradas no sistema.
- São exibidos dos produtos seus
id,name,descriptione respectivospricecomo resposta, além dos campos obrigatóriosoriginedestination(apenas em viagens).
No Content
No Content
No Content
{
"trips": [
{
"id": "1.6281762770675543",
"name": "trip",
"description": "descrição",
"price": 25,
"origin": "Paris",
"destination": "Lisboa"
},
{
"id": "1.6281763134581866",
"name": "trip2",
"description": "descrição",
"price": 2500,
"origin": "Bogotá",
"destination": "Camboja"
}
]
}
- Não há restrições.
https://labecommerce-projeto.herokuapp.com/purchase
- Este endpoint retorna todos as compras registradas no sistema.
- A busca é feita através do query param
description. - São exibidos dos estudantes seus
namee respectivosidcomo resposta. - É exibido também o nome do hobby de busca.
No Content
No Content
No Content
{
"purchases": [
{
"id": "1.6282569448094355",
"user_id": "1.6281285616511747",
"product_id": "1.6281283732382985",
"quantity": 2,
"total_price": 18.5
},
{
"id": "1.6282571227781966",
"user_id": "1.6281285616511747",
"product_id": "1.6281283732382985",
"quantity": 5,
"total_price": 92.5
}
]
}
- Não há restrições.
https://labecommerce-projeto.herokuapp.com/purchase/:userId
- Este endpoint busca todas as compras feitos por um usuário.
- É necessário passar o
userIdcomo query params. - São exibidos o
idde registro da compra, ouser_id, oproduct_id, aquantitye ototal_pricecomo resposta.
No Content
No Content
- userId 1.6281285616511747
{
"purchases": [
{
"id": "1.6282569448094355",
"user_id": "1.6281285616511747",
"product_id": "1.6281283732382985",
"quantity": 2,
"total_price": 18.5
},
{
"id": "1.6282571227781966",
"user_id": "1.6281285616511747",
"product_id": "1.6281283732382985",
"quantity": 5,
"total_price": 92.5
}
]
}
userIddeve ser um valor válido de registro. Caso não, será enviado uma lista de compras vazia.
https://labecommerce-projeto.herokuapp.com/user
- Este endpoint cria um novo usuário no sistema.
{
"name": "nome",
"email": "nome@email.com",
"age": 25
}
Content-Type: application/json
No Content
{
"message": "User created successfully!"
}
name,emaileagesão campos obrigatórios.emaildeve ser um campo único.agedeve ser inserido comonumber type. Demais campos, são da formastring type.emaildeve ser inserido no formatoxxxx@yyyyy.zzz.www.iddo usuário é criado pelo próprio código.
https://labecommerce-projeto.herokuapp.com/product
- Este endpoint cria um novo produto no sistema.
{
"name": "produto",
"description": "descrição",
"price": 18.50
}
Content-Type: application/json
No Content
{
"message": "Product created successfully!"
}
name,descriptionepricesão campos obrigatórios.namedeve ser um campo único.pricedeve ser inserido comonumber type. Demais campos, são da formastring type.iddo usuário é criado pelo próprio código.
https://labecommerce-projeto.herokuapp.com/trip
- Este endpoint cria uma nova viagem no sistema.
{
"name": "name",
"description": "descrição",
"price": 2500.00,
"origin": "Roma",
"destination": "Orlando"
}
Content-Type: application/json
No Content
{
"message": "Trip created successfully!"
}
name,description,price,originedestinationsão campos obrigatórios.namedeve ser um campo único.pricedeve ser inserido comonumber type. Demais campos, são da formastring type.iddo usuário é criado pelo próprio código.
https://labecommerce-projeto.herokuapp.com/purchase
- Este endpoint cria uma nova compra no sistema por um usuário.
{
"userId": "1.6281285616511747",
"productId": "1.6281283732382985",
"quantity": 5
}
Content-Type: application/json
No Content
{
"message": "Teacher associated to class successfully!"
}
userId,productIdequantitysão campos obrigatórios.quantitydeve ser inserido comonumber type. Demais campos, são da formastring type.iddo usuário é criado pelo próprio código.