API Rest criada para o web app Aluraflix. Inclui autenticação via login com token.
- Node.js, Express
- Sequelize, MySQL, Redis
- Passport, JWT
- Insomnia, Jest, Supertest
- Swagger UI
- Heroku
Acesse: Aluraflix API
Acesse a rota /api-docs/
.
Para se autenticar, crie um usuário (/usuarios
com método POST
) e depois faça um login (/login
com método POST
).
Um token será gerado e enviado via header da requisição. Copie e cole este token na autenticação padrão do Swagger para acessar todas as rotas.
Acesse: Aluraflix API Documentação
- Preparar ambiente
- Criar modelos e pouplar banco de dados
- Criar services, controllers e rotas
- Criar novas tabelas e associações
- Criar requisições relacionais e buscas
- Fazer validações nos modelos
- Fazer paginação nos controllers
- Criar sistema de usuário, login e autenticação
- Testes unitários e de integração
- Deploy no Heroku
- Iniciar projeto com npm:
npm init -y
- Instalar express:
npm install express
- Criar arquivo .gitignore com
node_modules
dentro - Instalar a biblioteca body-parser:
npm install body-parser
- Instalar biblioteca nodemon como dependência de desenvolvimento:
npm install --save-dev nodemon
- Adicionar no package.json um script para chamar o nodemon de forma automática:
"start": "nodemon ./api/index.js"
- Criar pasta com arquivo dentro: api/index.js
- Criar uma rota de conexão teste
const app = express();
const port = 3000;
app.use(bodyParser.json());
app.get("/teste", (req, res) => res.status(200).send({ mensagem: "teste api" }));
app.listen(port, () => console.log(`servidor rodando na porta ${port}`));
module.exports = app;
- Rodar
npm start
no terminal para colocar a app no ar
- Instalar o banco de dados MySQL:
npm install mysql2
- Instalar o Sequelize com duas dependências (linha de comando do ORM e path):
npm install sequelize sequelize-cli path
- Inicializar a linha de comando do Sequelize com
npx sequelize-cli init
para rodar as dependências que serão instaladas localmente pelo ORM - Passar todas as pastas criadas pelo Sequelize (/config, /migrations, /modelos e /seeders) para dentro da pasta principal que criamos anteriomente /api
├── api
│ ├── config
│ │ ├── config.json
│ ├── migrations
│ ├── models
│ │ ├── index.js
│ ├── seeders
│ ├── index.js
├── package-lock.json
├── package.json
└── .gitignore
- Criar aquivo .sequelizerc na raiz do projeto, para configurar caminhos e estruturas corretas da app
const path = require("path");
module.exports = {
"config": path.resolve("./api/config", "config.json"),
"models-path": path.resolve("./api/models"),
"seeders-path": path.resolve("./api/seeders"),
"migrations-path": path.resolve("./api/migrations")
}
- No terminal, se conectar com o banco MySQL com seu usuário (aqui será root e depois sua senha):
sudo mysql -u root -p
- Criar a database do projeto:
create database aluraflix;
- Visualizar se a database foi criada:
show databases;
- Conectar a database com o projeto alterando o arquivo config.json, incluindo seu
username
,password
edatabase
usados na área dedevelopment
Categorias | ||
---|---|---|
PK | ID | int |
titulo | string | |
cor | string |
Videos | ||
---|---|---|
PK | ID | int |
titulo | string | |
descricao | string | |
url | string | |
FK | categoria_id | ID |
- Todos os campos são obrigatórios e precisam ser preenchidos
- Testes unitários para modelos e controllers
- Testes de integração
- Documentação
- Deploy
- Integração com Front-end