ANÚNCIO

~/questoes/programacao

Qual rota HTTP deve ser testada para validar o método findAll do Repository?

Responda, confira o feedback e use o resultado para orientar sua revisão.
Para fixar

Testando o método findAll do Repository com a rota HTTP correta

Conceito central

O padrão Repository encapsula as operações de banco de dados, e cada método do Repository é chamado por uma rota HTTP específica. O método findAll retorna todos os registros e deve ser testado através da rota GET /selecoes, que chama o método index do Controller.

Por que essa resposta faz sentido

A rota GET /selecoes é a forma correta de testar o método findAll do Repository. GET é o verbo HTTP para leitura, /selecoes é o recurso, e essa combinação dispara o método index do Controller, que por sua vez chama findAll() no Repository para retornar todos os registros da tabela.

Armadilhas comuns

  • Confundir GET /selecoes/:id (buscar um específico) com GET /selecoes (buscar todos). A ausência do :id é a chave para findAll.
  • Pensar que findAll precisa de um ID na URL, quando na verdade ele lista tudo sem filtro de identificador único.
  • Usar POST, PUT ou DELETE para operações de leitura, esquecendo que GET é o verbo HTTP exclusivo para recuperar dados sem modificá-los.

Entenda as alternativas

A

PUT /selecoes/:id é usado para atualizar um registro específico. Essa rota chamaria o método update do Controller, que utilizaria o método update() do Repository, não o findAll().

B

GET /selecoes é a rota correta para testar findAll. O verbo GET indica leitura, e sem o :id na URL significa que queremos listar todos os registros. O Controller recebe essa requisição no método index e chama Repository.findAll() para retornar todos os dados.

C

POST /selecoes com dados no body é usado para criar um novo registro. Essa rota chama o método store do Controller, que utiliza Repository.create(), não o findAll().

D

DELETE /selecoes/:id é usado para remover um registro específico. Essa rota chama o método delete do Controller, que utiliza Repository.delete(), não o findAll().

Dica prática: Ao testar no Insomnia, lembre-se: toda vez que quer listar tudo, use GET sem parâmetro de ID na URL. Se adicionar :id, está buscando um registro específico (findById), não todos. Teste GET /selecoes e você receberá um array JSON com todos os registros.

Revise pensando: Se você quer testar o método findAll do Repository, qual verbo HTTP e qual padrão de URL você usaria, e por quê?