Este projeto é uma API e um banco de dados para uma loja de items medievais. Trata-se de um dos projetos do módulo de back-end do curso de formação em desenvolvimento web full-stack da Trybe.
A aplicação foi desenvolvida em Typescript utilizando Node e Express para fazer um CRUD de itens da loja seguindo os princípios do REST.
Para que sejam feitas algumas requisições, é necessário que o usuário tenha feito login, que é autenticado via JWT Token.
Basta rodar os seguintes comandos:
docker-compose up -d --build
Para subir os containers de Node (blogs_api) e do banco de dados (blogs_api_db).docker exec -it trybesmith bash
Para ter acesso ao terminal interativo do container do Node criado no passo anterior.npm install
Para instalar as dependências do package.json no container do Node.npm start
Para rodar a aplicação.
Observação:
Os produtos são considerados artesanais e, portanto, únicos; por essa razão, a entidade product
possui a propriedade order_id
, e não o contrário.
Cadastra um novo produto no banco de dados. O corpo da requisição deve ter o seguinte formato:
{
"name": "Espada longa",
"amount": "30 peças de ouro"
}
Recupera todos os produtos cadastrados no banco de dados.
Cadastra um novo usuário no banco de dados. O corpo da requisição deve ter o seguinte formato:
{
"username": "MAX",
"vocation": "swordsman",
"level": 10,
"password": "SavingPeople"
}
Recupera todos os pedidos cadastrados no banco de dados.
Realiza o login do usuário e retorna um token JWT. O corpo da requisição deve ter o seguinte formato:
{
"username": "string",
"password": "string"
}
Cadastra um novo pedido no banco de dados. O pedido só pode ser cadastrado se o usuário estiver autenticado. O corpo da requisição deve ter o seguinte formato:
{
"productsIds": [1, 2]
}