Skip to content

API REST que simula uma loja de itens medievais.

Notifications You must be signed in to change notification settings

hgo19/Trybesmith

Repository files navigation

Trybesmith

Sistema que cria uma loja virtual de itens medievais, no formato de uma API REST, utilizando Typescript.

Tecnologias Utilizadas

  • Docker
  • Node.js
  • Express.js
  • MySQL
  • Arquitetura MSC (Models, Services e Controllers)
  • Middlewares de erro
  • Lib restify-errors para tratamento de erros
  • Typescript

Rodando a aplicação

🐳 Rodando no Docker vs Localmente

Com Docker

Antes de começar, seu docker-compose precisa estar na versão 1.29 ou superior. Veja aqui ou na documentação como instalá-lo. No primeiro artigo, você pode substituir onde está com 1.26.0 por 1.29.2.

  1. Clone o repositório:
git clone git@github.com:hgo19/Trybesmith.git
  1. Inicie os containers através do comando:
docker-compose up -d
  1. Entre no container com node e instale as dependências:
docker exec -it trybesmith bash

Dentro do Container:

npm install

Para criar o banco de dados:

npm run createDB

Para iniciar a aplicação na porta 3000:

npm run dev
  1. A aplicação estará rodando na porta 3000, para acessála basta acessar o endereço: http://localhost:3000 e então utilizar os endpoints.

Sem Docker

  1. Instale as dependências com:
npm install
  1. Na aplicação tem um arquivo chamado .env.example, renomei para apenas .env e o configure para que consiga rodar localmente.

  2. Para rodar localmente você precisa ter instalado o Node.js na sua máquina, em que, a versão deve ser "node": ">=16.0.0" e a versão do "npm": ">=7.0.0".

  3. Em seguida digite os seguintes comandos em seu terminal:

Para criar o banco de dados:

npm run createDB

Para iniciar a aplicação na porta 3000:

npm run dev


Função de criação de banco de dados e query para criar o mesmo escritos por: Trybe.



Endpoints

Na aplicação foram usados os seguintes endpoints:

Todos os ENDPOINTS precisam de um TOKEN válido para ser realizada a requisição, exceto o de login e o de criação de usuário, ambos terão um token na sua resposta

Login

  • POST /login retornará um TOKEN em caso de login bem sucedido(usuário presente no banco de dados com a senha correta). Usuário já cadastrado no Banco de Dados para testes:
  {
    "username": "Zoro",
    "password": "cabecademarimo"
  }

Users

  • POST /users endpoint para cadastro de usuário, retornará um TOKEN em caso de sucesso. Para cadastrar o usuário a requisição deve conter o seguinte body:
{ 
  "username": "Sanji",
  "vocation": "fighter",
  "level": 7,
  "password": "sombrancelhudo"
}

Orders

  • GET /orders retornará todos os pedidos já feitos na loja
  • POST /orders/ cadastra um novo pedido e retorna o pedido cadastrado, o pedido deve ter o seguinte body na sua requisição:
  {
    "productsIds": [1, 2]
  }

Products

  • POST /products adicionará um novo produto ao banco de dados, a requisição deve ter seu body da seguinte maneira:
  {
    "name": "Espada longa",
    "amount": "30 peças de ouro"
  }
  • GET /products retornará a listagem com todos os produtos disponíveis no banco de dados

Projeto desenvolvido por: Hugo Leonardo.

About

API REST que simula uma loja de itens medievais.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published