Está API foi criada com Node.js e SQLite3 com objetivo de estudar utilizando uma comunicação via JSON. Ela contém um CRUD de projetos e um CRUD de tarefas. Cada projeto é descrito da seguinte maneira:
{
"id": number,
"title": string
}
E cada tarefa:
{
"id": number,
"title": string,
"project_id": number
}
Ambos os IDs são autoincrementaveis.
Para instalar as dependências: yarn add
Entre na pasta do projeto e digite yarn start
ou yarn nodemon index.js
para rodar
Para instalar as dependências: npm install
Entre na pasta do projeto e digite npm start
ou npm nodemon index.js
para rodar
- A API recebe requisições de qualquer URL atualmente, isso pode ser alterado no arquivo src/index.js na linha 17.
- A porta atual em que a API está rodando é a 3333, isso pode ser alterado na linha 24 do arquivo src/index.js .
- Apenas dois middlewares foram aplicados nas rotas. Qualquer erro decorrente deste ou de outros problemas é de total responsabilidade do usuário da API.
- Existe um erro que não deleta as tarefas de um projeto quando esse projeto é deletado. Este erro é decorrente do não funcionamento do onDelete('CASCADE') da versão utilizada da biblioteca Knex.
GET localhost:3333/projects
Retorna todos os projetos cadastrados no formato JSON.
Exemplo de retorno:
[
{
"id": 1,
"title": "projeto 01"
},
{
"id": 2,
"title": "projeto 02"
}
]
POST localhost:3333/projects
Cadastra um novo projeto e nada é retornado.
A informação title precisa ser passada no body da requisição.
Exemplo de body:
[
{
"title": "projeto"
}
]
PUT localhost:3333/projects/:id
Edita um projeto cadastrado no banco de dados e nada é retornado.
Na URL deve ser passado o id de um projeto já cadastrado no lugar de :id. A informação title precisa ser passada no body da requisição.
Exemplo de body:
[
{
"title": "novo nome"
}
]
DELETE localhost:3333/projects/:id
Apaga um projeto cadastrado no banco de dados e nada é retornado.
Na URL deve ser passado o id de um projeto já cadastrado no lugar de :id.
Exemplo de URL:
localhost:3333/projects/1
O projeto com id = 1 será deletado do banco de dados.
GET localhost:3333/projects/:id/tasks
Retorna todos as tarefas cadastradas no projeto com o id passado no lugar de :id
Exemplo de retorno para: localhost:3333/projects/1/tasks
[
{
"id": 2,
"title": "tarefa 01",
"project_id": 1
},
{
"id": 3,
"title": "tarefa 02",
"project_id": 1
}
]
POST localhost:3333/projects/:id/tasks
Cadastra uma nova tarefa vinculada ao id passado no lugar de :id.
A informação title precisa ser passada no body da requisição.
Exemplo de body para: localhost:3333/projects/1/tasks
[
{
"title": "nome da tarefa"
}
]
PUT localhost:3333/projects/:id/tasks/:task_id
Edita a tarefa com o id passado em :task_id já cadastrada e vinculada ao id passado no lugar de :id.
A informação title precisa ser passada no body da requisição.
Exemplo de body para: localhost:3333/projects/1/tasks/1
[
{
"title": "novo nome da tarefa"
}
]
DELETE localhost:3333/projects/:id/tasks/:task_id
Apaga a tarefa com o id passado em :task_id já cadastrada e vinculada ao id passado no lugar de :id.
Exemplo de URL:
localhost:3333/projects/1/tasks/5
A tarefa com id = 5 vinculada ao projeto com id = 1 será deletada do banco de dados.