Engenharia Múltipla Escolha

Um desenvolvedor está otimizando as rotas de Update e Delete na API REST e precisa garantir que Sequelize trate corretamente as restrições complexas e que o servidor responda com os códigos HTTP adequados. Assinale a alternativa INCORRETA sobre o tratamento de restrições no Sequelize e a resposta da API REST.

Um desenvolvedor está otimizando as rotas de Update e Delete na API REST e precisa garantir que Sequelize trate corretamente as restrições complexas e que o servidor responda com os códigos HTTP adequados. Assinale a alternativa INCORRETA sobre o tratamento de restrições no Sequelize e a resposta da API REST.

  1. Se um cliente tentar alterar (PUT) ou excluir (DELETE) um recurso em uma rota parametrizada e o identificador não for encontrado no banco de dados, o servidor deve retornar o código 404 (Not Found).
  2. Ao utilizar a cláusula where no Sequelize, se diversas condições forem listadas sem a presença de um operador lógico explícito (como Op.or), será implicitamente utilizado o operador Op.or (lógico “ou”) para combinar as condições.
  3. O método update do Sequelize, usado para alteração em lote ou individual, retorna a quantidade de registros que foram alterados (linhas afetadas).
  4. Para garantir que um conjunto de operações de manipulação de registros seja tratado como uma unidade (confirmando ou rejeitando o lote), é essencial o uso de Transações.
  5. Na arquitetura REST, se a exclusão de um registro (método DELETE) for bem-sucedida, o código de resposta HTTP mais adequado é o 204 (No Content), indicando sucesso sem conteúdo na resposta.

Resolução completa

Explicação passo a passo

B
Alternativa B

Alternativa B

Análise Detalhada

A questão solicita identificar a alternativa INCORRETA sobre boas práticas de Sequelize e protocolos REST. Vamos examinar os pontos técnicos de cada opção para encontrar a falha.

Por que a Alternativa B está errada?

A afirmação diz: "Ao utilizar a cláusula where no Sequelize, se diversas condições forem listadas sem a presença de um operador lógico explícito (como Op.or), será implicitamente utilizado o operador Op.and (lógico 'ou' para combinar as condições)".

Existe uma contradição direta nesta frase:

  1. Comportamento Real: No Sequelize, quando você passa um objeto para where (ex: { status: 'active', type: 'user' }), ele combina as condições com o operador AND (conjunção).
  2. Erro Conceitual: O texto associa Op.and ao significado de "lógico 'ou'". Isso é falso.
  • Op.and significa E (AND).
  • Op.or significa OU (OR).

Como a definição do operador dentro dos parênteses inverte a lógica booleana correta, esta é a afirmação incorreta.

Validação das Outras Alternativas

Para confirmar que B é a resposta, verificamos que as demais estão corretas segundo as melhores práticas de desenvolvimento:

  • Alternativa A (Correta): Se um recurso específico (identificado por ID em rota parametrizada) não existe, o protocolo REST exige retornar 404 Not Found.
  • Alternativa C (Correta): O método update no Sequelize retorna quantas linhas foram alteradas (normalmente como um array [número_de_linhas]).
  • Alternativa D (Correta): Para garantir integridade em operações múltiplas (atomicidade), o uso de Transações é obrigatório. Se uma falhar, todas são revertidas.
  • Alternativa E (Correta): Em arquiteturas REST, após uma deleção bem-sucedida, o código 204 No Content é o padrão ideal, pois indica sucesso sem necessidade de devolver dados na resposta.

Conclusão

A alternativa B é a resposta correta da questão porque contém uma definição técnica equivocada ao classificar o operador Op.and como "lógico 'ou'".

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Engenharia

Ver mais Engenharia resolvidas

Tem outra questão de Engenharia?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.