Skip to content

Projeto em Node.js com uma API de CRUD de projetos e suas tarefas

Notifications You must be signed in to change notification settings

jackson541/projetos-e-tarefas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Projetos e tarefas

Funcionalidade

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.


Rodando o projeto

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


Observações

  1. A API recebe requisições de qualquer URL atualmente, isso pode ser alterado no arquivo src/index.js na linha 17.
  2. A porta atual em que a API está rodando é a 3333, isso pode ser alterado na linha 24 do arquivo src/index.js .
  3. Apenas dois middlewares foram aplicados nas rotas. Qualquer erro decorrente deste ou de outros problemas é de total responsabilidade do usuário da API.
  4. 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.

Uso das rotas

Projetos


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.



Tarefas


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.

About

Projeto em Node.js com uma API de CRUD de projetos e suas tarefas

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published