Neste projeto, desenvolvi uma API utilizando Typescript e MySQL para gerenciar uma loja de produtos medievais utilizando a arquitetura de Modelos, Serviços e Controladores(MSC). Implementei a autenticação de token JWT para garantir a segurança dos endpoints, confirmando as identidades dos usuários e impedindo o acesso não autorizado.
- Desenvolver uma API RESTful utilizando Typescript para gerenciamento de uma loja de itens medievais.
- Permitir a criação, visualização, deleção e atualização de produtos e pedidos através da API, utilizando as camadas de Models, Services e Controllers.
- Utilizar o Node.js em conjunto com o framework Express para criar o servidor HTTP e gerenciar as rotas.
- Criar um ambiente de desenvolvimento e produção isolado utilizando o Docker.
- Gerenciar o banco de dados MySQL através do MySQL Workbench.
- Implementar autenticação por tokens JWT(Json web token), validando a identidade das pessoas usuárias e garantindo segurança nos endpoints.
- Utilizar a biblioteca Joi para validação de dados de entrada da API.
- Node.js
- Express
- Docker
- MySQL
- MySQL Workbench
- Joi
- JWT - Json web token
⌨️ Rotas
- Retorna todos os produtos cadastrados no banco de dados, ordenados pelo campo id.
-
Cadastra um novo produto no banco de dados.
-
O corpo da requisição deve seguir o seguinte formato: json
{
"name": "Nome do Produto",
"amount": "30 peças de ouro"
}
- Cria um novo usuário gerando um token de acesso.
- Retorna todos os pedidos e os ids dos produtos associados a estes.
- O corpo da requisição deve seguir o seguinte formato: json
{
"username": "string",
"password": "string"
}
- Cadastra um novo pedido no banco de dados.
- Para cadastrar um novo pedido, é necessário está logado. (Deverá ser passado um header authorization contendo o token gerado no login)
- O corpo da requisição deve seguir o seguinte formato: json
{
"productsIds": [1, 2]
}
- Nodejs 16 +
- Docker
- Docker-compose
No terminal
https://github.com/ErickArgollo/project-Trybe-Smith
Após clonar, execute o docker compose na pasta raiz do projeto, executando o comando
docker-compose up -d --build
Execute o container e instale os pacotes da aplicação:
docker exec -it trybesmith bash
npm install
Rode a aplicação com o comando:
npm start
A visualização e utilização dos endpoints pode ser feita através do postman, thunderclient, etc.
- Faça um fork do projeto;
- Crie uma nova branch com as suas alterações:
git checkout -b my-feature
; - Salve as alterações e crie uma mensagem de commit contando o que você fez:
git commit -m "feature: My new feature"
; - Envie as suas alterações:
git push origin my-feature
; - Abra o seu pull-request na página do GitHub.
Esse projeto está sob a licença: