Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/caioagiani/api-sequelize-sucrase

API RESTful NodeJs express, sequelize (mysql), jwt e sucrase es5 + eslint & prettier
https://github.com/caioagiani/api-sequelize-sucrase

api express javascript mysql nodejs restful-api sequelize

Last synced: about 2 months ago
JSON representation

API RESTful NodeJs express, sequelize (mysql), jwt e sucrase es5 + eslint & prettier

Awesome Lists containing this project

README

        


API RESTful

API RESTful - MySQL Sequelize :: Sucrase

[![Status](https://img.shields.io/badge/status-active-success.svg)]()
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](/LICENSE)

## 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` ou `npm 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 import `api.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

```java
router.post('/users', UserController.store)

{
"name": "Caio",
"email": "[email protected]",
"password": "123123"
}
```

- [x] Logar sessão

```java
router.post('/users', UserController.store)

{
"email": "[email protected]",
"password": "123123"
}
```

- [x] Perfil usuário

```java
router.get('/profile/:idUser', auth, UserController.store)
```

- [x] Atualizar usuário

```java
router.put('/users', auth, UserController.update)

{
"name": "Caio Henrique Agiani Pimenta",
"email": "[email protected]",
"oldPassword": "123",
"password": "123"
}
```

- [x] Deslogar usuário

```java
router.get('/logout', auth, SessionController.destroy)
```

- [x] Deletar usuário

```java
router.delete('/users/:idUser', auth, UserController.delete);
```

## Contato

- [LinkedIn](https://www.linkedin.com/in/caioagiani/)
- [email protected]