api-sequelize-sucrase
api-sequelize-sucrase copied to clipboard
API RESTful NodeJs express, sequelize (mysql), jwt e sucrase es5 + eslint & prettier
API RESTful - MySQL Sequelize :: Sucrase
Apresentação:
Projeto CRUD: API RESTful seguindo conceito MVC utilizando Stack NodeJS, padronizado o código com Eslint e Prettier.
Pacotes principais: Express responsável pela criação de rotas, Middleware JWT para persistência do token por 30minutos, mantendo a segurança e credêncial do usuário, ORM Sequelize para conexão com banco de dados relacional (MySQL) e por fim, Jest para realização de tests.
Instalação:
-
Instalar dependência:
yarn install
ounpm install
-
Configurar variáveis ambiente:
cp .env.example .env
-
Permissão de execução o script database:
sudo chmod +x src/scripts/database.sh
-
Executar script database para configurar o banco:
yarn dev:db
-
Iniciar banco de dados:
yarn sequelize db:migrate
ou importapi.sql
-
Iniciar aplicação em desenvolvimento:
yarn dev
-
Iniciar aplicação em produção:
yarn start
-
Format eslint:
yarn dev:fix
-
Buildar sucrase:
yarn dev:build
Rotas
Import insomnia: Insomnia.json
- [x] Criar usuário
router.post('/users', UserController.store)
{
"name": "Caio",
"email": "[email protected]",
"password": "123123"
}
- [x] Logar sessão
router.post('/users', UserController.store)
{
"email": "[email protected]",
"password": "123123"
}
- [x] Perfil usuário
router.get('/profile/:idUser', auth, UserController.store)
- [x] Atualizar usuário
router.put('/users', auth, UserController.update)
{
"name": "Caio Henrique Agiani Pimenta",
"email": "[email protected]",
"oldPassword": "123",
"password": "123"
}
- [x] Deslogar usuário
router.get('/logout', auth, SessionController.destroy)
- [x] Deletar usuário
router.delete('/users/:idUser', auth, UserController.delete);