CRUD em Memória
[Recomendada para começar] | Área: Backend | Nível recomendado: Iniciante
Esta missão irá aprofundar o conhecimento em lógica de programação backend com a implementação de um CRUD (Create, Read, Update, Delete) diretamente na memória do servidor. Adicionalmente, serão abordadas as melhores práticas de validação de dados e uso adequado dos códigos de status HTTP.
Vídeo
Link direto: https://youtu.be/EU2kLPmyT1U
Tópicos
Configuração do Ambiente de Desenvolvimento:
Configurar o Nodemon para reiniciar o servidor automaticamente a cada alteração.
Estruturação do CRUD:
Revisão dos conceitos de CRUD.
Implementação de um array em memória para armazenar dados.
Criação de rotas para cada operação do CRUD.
Validação de Dados:
Introdução às técnicas e bibliotecas de validação de dados.
Aplicação de validações nas entradas de dados do CRUD.
Status HTTP:
Explicação sobre códigos de status HTTP e suas aplicações.
Implementação de códigos de status HTTP apropriados para cada operação do CRUD.
Material de Apoio
Repositório no GitHub
PDF para Download
Miro
Exercícios de Fixação
Use esses exercícios para reforçar o que acabou de aprender. Se errar, leia a explicação para entender melhor o conceito.
Qual é a função do Nodemon no desenvolvimento de aplicações NodeJS?
A) Reiniciar o servidor automaticamente a cada alteração no código.
B) Instalar pacotes npm automaticamente.
C) Facilitar a criação de endpoints.
D) Implementar validação de dados.
Resposta correta
Qual é a função do Nodemon no desenvolvimento de aplicações NodeJS?
Resposta Correta: A
Feedback: O Nodemon reinicia o servidor automaticamente a cada alteração no código, facilitando o desenvolvimento.
Resposta correta
Complete o código para criar um endpoint que retorne todos os itens da lista.
Resposta Correta: lista.filter(Boolean)
Feedback: O método filter(Boolean) remove itens falsy da lista antes de retorná-la.
Resposta correta
Afirmativa: O código de status HTTP 404 significa "Item não encontrado".
Resposta Correta: A
Feedback: O código 404 é utilizado para indicar que um item ou recurso não foi encontrado no servidor.
Qual comando usamos para instalar o Nodemon como dependência de desenvolvimento?
A) npm install nodemon
B) npm install --save nodemon
C) npm install --save-dev nodemon
D) npm install nodemon --saveDev
Resposta correta
Qual comando usamos para instalar o Nodemon como dependência de desenvolvimento?
Resposta Correta: C e D
Feedback: Tanto o comando npm install --save-dev nodemon quanto npm install nodemon --save-dev instalam o Nodemon como uma dependência de desenvolvimento.
Complete o código para criar um endpoint que adicione um novo item à lista, verificando se o nome está presente no corpo da requisição e adicionando o item na lista.
Resposta correta
Complete o código para criar um endpoint que adicione um novo item à lista.
Resposta Correta:
Feedback: A mensagem Corpo da requisição deve conter a propriedade nome. é enviada quando o nome não está presente no corpo da requisição. A verificação se o item já existe na lista e a adição do novo item são partes essenciais do endpoint.
Exercícios de Validação
Esses exercícios testarão sua compreensão prática. Revise o feedback para melhorar suas habilidades.
Desafio de Código
Crie um endpoint adicional na aplicação ExpressJS que responda com "Número total de itens: X" quando a rota /personagem/count for acessada, onde X é o número total de itens na lista.
Implementar o novo endpoint no arquivo
index.js.
Resposta esperada
Feedback: Certifique-se de que o servidor está ouvindo na porta correta e que a rota /personagem/count está devidamente configurada.
Revisão de Código
Analise o código a seguir, encontre e corrija o erro.
Resposta Correta
Erros:
Falta o middleware para processar JSON no Express.
Acesso incorreto ao índice da lista (deve ser lista[id - 1] para seguir a convenção 1-based ID).
Verificação inadequada para valores duplicados na lista (deve verificar apenas nomes, não objetos inteiros).
Feedback: Certifique-se de que o middleware express.json() está configurado corretamente para processar requisições com JSON, e que a indexação de elementos na lista está correta. Além disso, a verificação para valores duplicados deve ser aprimorada para comparar apenas os nomes dos itens.
Projeto Prático
Crie uma nova aplicação ExpressJS que inclua:
Um endpoint que responda com todos os itens da lista quando a rota
/personagemfor acessada.Um endpoint que responda com um item específico da lista quando a rota
/personagem/:idfor acessada.Um endpoint que adicione um novo item à lista quando a rota
/personagemfor acessada com uma requisição POST.
Tarefas
Criação do Projeto:
Inicialize um novo projeto NodeJS.
Instale o ExpressJS.
Instale e configure o Nodemon.
Implementação dos Endpoints:
Crie um novo arquivo
index.js.Implemente o endpoint que responda com todos os itens da lista na rota
/personagem.Implemente o endpoint que responda com um item específico na rota
/personagem/:id.Implemente o endpoint que adicione um novo item à lista com uma requisição POST na rota
/personagem.
Código esperado
Feedback Detalhado
Verificação dos Endpoints: Certifique-se de testar cada rota (
/personagem,/personagem/:id,/personagemcom POST) acessandohttp://localhost:3000e verificando as respostas.Estrutura: A estrutura básica da aplicação deve seguir a mesma lógica apresentada na missão original.
Diferença Sutil: A inclusão dos novos endpoints oferece um exercício prático de aplicação do conhecimento adquirido, sem introduzir novos conceitos.
Last updated