Nesse projeto você desenvolverá uma API fictícia para uma empresa de cursos de programação, onde em um primeiro momento, você deverá utilizar o CRUD, para criação de cursos.
Estrutura, regras e requisitos do projeto
A API deve conter as seguintes funcionalidades:
ididAntes das rotas, vamos entender qual a estrutura (propriedades) que um curso deve ter:
id - Identificador único de cada cursoname - Nome do cursocategory - Categoria do cursoactive - Define se o curso está ativo ou nãocreated_at - Data de quando o curso foi criadoupdated_at - Deve ser sempre alterado para a data de quando o curso for atualizadaDeve ser possível criar um curso no banco de dados, enviando os campos name, category e professor por meio do body da requisição.
Ao criar um curso, os campos: id, created_at e updated_at devem ser preenchidos automaticamente, conforme a orientação das propriedades acima.
Deve ser possível listar todas os cursos salvos no banco de dados.
Também deve ser possível realizar uma busca, filtrando os cursos pelo name e category
Deve ser possível atualizar um curso pelo id.
No body da requisição, deve receber um dos campos name, category ou professor para serem atualizados.
Se for enviado somente o name, significa que o category não pode ser atualizado e vice-versa. Além disso, active for informado nessa rota, ele deverá ser ignorado, pois a rota que deverá fazer essa atualização, é a de patch.
Deve ser possível remover um curso pelo id.
Essa rota servirá para marcar se o curso está ativo ou não, ou seja, um toggle entre true or false.
A anotação @CreationTimestamp define que o valor do atributo createdAt será definido automaticamente pelo banco de dados no momento da criação da entidade.
A anotação @UpdateTimestamp define que o valor do atributo updatedAt será definido automaticamente pelo banco de dados no momento da atualização da entidade.
Algumas sugestões do que pode ser implementado:
name, category e professor da rota POST estão presentes no body da requisição.A API deve conter as seguintes funcionalidades:
ididAntes das rotas, vamos entender qual a estrutura (propriedades) que um curso deve ter:
id - Identificador único de cada cursoname - Nome do cursocategory - Categoria do cursoactive - Define se o curso está ativo ou nãocreated_at - Data de quando o curso foi criadoupdated_at - Deve ser sempre alterado para a data de quando o curso for atualizadaDeve ser possível criar um curso no banco de dados, enviando os campos name, category e professor por meio do body da requisição.
Ao criar um curso, os campos: id, created_at e updated_at devem ser preenchidos automaticamente, conforme a orientação das propriedades acima.
Deve ser possível listar todas os cursos salvos no banco de dados.
Também deve ser possível realizar uma busca, filtrando os cursos pelo name e category
Deve ser possível atualizar um curso pelo id.
No body da requisição, deve receber um dos campos name, category ou professor para serem atualizados.
Se for enviado somente o name, significa que o category não pode ser atualizado e vice-versa. Além disso, active for informado nessa rota, ele deverá ser ignorado, pois a rota que deverá fazer essa atualização, é a de patch.
Deve ser possível remover um curso pelo id.
Essa rota servirá para marcar se o curso está ativo ou não, ou seja, um toggle entre true or false.
A anotação @CreationTimestamp define que o valor do atributo createdAt será definido automaticamente pelo banco de dados no momento da criação da entidade.
A anotação @UpdateTimestamp define que o valor do atributo updatedAt será definido automaticamente pelo banco de dados no momento da atualização da entidade.
Algumas sugestões do que pode ser implementado:
name, category e professor da rota POST estão presentes no body da requisição.Use este checklist para ajudar a organizar a sua entrega