API RESTful de lista de tarefas. Com esta API você pode cadastrar usuários e criar tarefas.
- Node.js
- Express.js
- Sequelize
- MySQL
- Morgan
- Bcrypt
- JWT
- Clone o repositório
git clone https://github.com/dev-gsilv/tugasapi
- Instale as dependências
npm install
- Crie um banco de dados local com mySQL;
- Na raiz do projeto clonado, crie um arquivo de variáveis de ambiente
.env
; - Adicione as seguintes variáveis de ambiente:
DB_NAME
: nome do banco de dados criado na etapa 3.DB_USER
: nome de usuário de seu banco de dados mySQL;DB_PASS
: senha de seu banco de dados mySQL;DB_HOST
: localhost;DB_PORT
: 3306JWT_SECRET
: uma string aleatória para configuração do token de acesso JWT.API_DEV_PORT
: 9999;
Por exemplo:
DB_NAME=testedb DB_USER=root DB_PASS=root DB_HOST=localhost DB_PORT=3306 JWT_SECRET='%Q!o*3RB&PPTKNimiEZ2H$uZJuerSTu6Yo!AR6xLQa43Qj35k$V&Dc$w8eR3' API_DEV_PORT=9999
- Inicie o servidor
npm start
- Sua API estará rodando localmente, teste a resposta do servidor na rota 'healthcheck'.
POST /login
Parâmetro | Tipo | Descrição |
---|---|---|
email |
string |
Obrigatório. E-mail e identificação única do usuário |
password |
string |
Obrigatório. Senha do usuário |
POST /register
Parâmetro | Tipo | Descrição |
---|---|---|
name |
string |
Obrigatório. Nome do usuário. |
email |
string |
Obrigatório. E-mail e identificação única do usuário |
password |
string |
Obrigatório. Senha do usuário |
GET /users
Autorização por Bearer token JWT*
Parâmetro | Tipo | Descrição |
---|---|---|
none |
N/A |
Nenhum parâmetro necessário. |
GET /users/all
Autorização por Bearer token JWT*. Exclusivo para usuário do tipo 'admin'.
Parâmetro | Tipo | Descrição |
---|---|---|
none |
N/A |
Nenhum parâmetro necessário. |
PUT /users
Autorização por Bearer token JWT*
Parâmetro | Tipo | Descrição |
---|---|---|
name |
string |
Nome do usuário. |
email |
string |
E-mail e identificação única do usuário |
password |
string |
Senha do usuário |
DELETE /users
Autorização por Bearer token JWT*
Parâmetro | Tipo | Descrição |
---|---|---|
none |
N/A |
Nenhum parâmetro necessário. |
POST /tasks
Autorização por Bearer token JWT*
Parâmetro | Tipo | Descrição |
---|---|---|
title |
string |
Obrigatório. Título da tarefa. |
description |
string |
Descrição da tarefa. |
status |
string |
Estado da tarefa. Escolha entre: 'pending,' 'in_progress' or 'completed'. Default: 'pending' |
dueDate |
string |
Data e hora limite da tarefa. Use o formato 'YYYY-MM-DD HH:MM:SS' ou apenas 'YYYY-MM-DD'. |
GET /tasks/all
Autorização por Bearer token JWT*. Exclusivo para usuário do tipo 'admin'.
Parâmetro | Tipo | Descrição |
---|---|---|
none |
N/A |
Nenhum parâmetro necessário. |
GET /tasks/:id
Autorização por Bearer token JWT*.
Parâmetro | Tipo | Descrição |
---|---|---|
id |
string |
ID da tarefa. Path Param. |
PUT /tasks/:id
Autorização por Bearer token JWT*
Parâmetro | Tipo | Descrição |
---|---|---|
title |
string |
Título da tarefa. |
description |
string |
Descrição da tarefa. |
status |
string |
Estado da tarefa. Escolha entre: 'pending,' 'in_progress' or 'completed'. |
dueDate |
string |
Data e hora limite da tarefa. Use o formato 'YYYY-MM-DD HH:MM:SS' ou apenas 'YYYY-MM-DD'. |
id |
string |
ID da tarefa. Path Param. |
DELETE /tasks/:id
Autorização por Bearer token JWT*.
Parâmetro | Tipo | Descrição |
---|---|---|
id |
string |
ID da tarefa. Path Param. |
*Para rotas com autenticação por token
Auth type Token Bearer Token JWT fornecido no login.