Para este projeto, foi criado uma loja de itens medievais, no formato de uma API, utilizando Typescript.
Desenvolvido todas as camadas da aplicação (Models, Service e Controllers), será possível realizar as operações básicas que se pode fazer em um determinado banco de dados: Criação, Leitura, Atualização e Exclusão (ou CRUD, para as pessoas mais íntimas - Create, Read, Update e Delete).
Foi criado alguns endpoints que irão ler e escrever em um banco de dados, utilizando o MySQL.
Back-end: Node, Express, Typescript, JWT, MySQL2
Rode os serviços node e db com o comando docker-compose up -d
.
Lembre-se de parar o mysql se estiver usando localmente na porta padrão (3306), ou adapte, caso queria fazer uso da aplicação em containers.
Esses serviços irão inicializar um container chamado trybesmith
e outro chamado trybesmith_db
.
A partir daqui você pode rodar o container trybesmith
via CLI ou abri-lo no VS Code.
Use o comando docker exec -it trybesmith bash
.
Ele te dará acesso ao terminal interativo do container criado pelo compose, que está rodando em segundo plano.
Instale as dependências "Caso existam" com npm install
The Compose file './docker-compose.yml' is invalid because:
Unsupported config option for services.db: 'platform'
Unsupported config option for services.node: 'platform'
Foram encontradas 2 possíveis soluções para este problema:
- Você pode adicionar manualmente a option platform: linux/amd64 no service do banco de dados no arquivo docker-compose.yml do projeto, mas essa é uma solução local e você deverá reproduzir isso para os outros projetos.
- Você pode adicionar manualmente nos arquivos .bashrc, .zshenv ou .zshrc do seu computador a linha export DOCKER_DEFAULT_PLATFORM=linux/amd64, essa é uma solução global. As soluções foram com base nesta fonte.
POST /login
Parâmetro | Tipo | Descrição |
---|---|---|
username |
string |
Obrigatório no body. User cadastrado no banco de dados |
password |
string |
Obrigatório no body. Password cadastrado no banco de dados |
POST /users
Parâmetro | Tipo | Descrição |
---|---|---|
username |
string |
Obrigatório no body. User para cadastrar |
vocation |
string |
Obrigatório no body. Vocation para cadastrar |
level |
number |
Obrigatório no body. Level para cadastrar |
password |
string |
Obrigatório no body. Password para cadastrar |
POST /orders
Parâmetro | Tipo | Descrição |
---|---|---|
Authorization |
string |
Obrigatório no Header. Key Recebida no login ou na hora de criar um usuario |
productsIds |
Array<Number> |
Obrigatório no body. ProductsIds existentes no banco de dados |
POST /products
Parâmetro | Tipo | Descrição |
---|---|---|
Authorization |
string |
Obrigatório no Header. Key Recebida no login ou na hora de criar um usuario |
name |
string |
Obrigatório no body. Nome do produto |
amount |
number |
Obrigatório no body. Quantidade do produto |
GET /products
GET /orders
Qualquer duvida entre em contato comigo:
E-mail: programadorthiagolopes@gmail.com