1
resposta

Vale a pena existir esses métodos?

1)Em "Controller.js" que é o genérico eu tenho "pegaTodosPorFiltro" que aceita as query strings, mas se não passar nenhuma o método retorna todos os registros, mas eu tenho o método "pegaTodos" que não aceita nenhuma query string e retorna todos os registros. Ou seja, o comportamento do método "pegaTodos" é reproduzido pelo método "pegaTodosPorFiltro" quando não é passado nenhuma query string. Então o que vale a pena fazer? Eu deixo o método "pegaTodos" como está ou faço ele apontar para o método "pegaTodosPorFiltro"? Porém se eu fazer isso daí o método "pegaTodos" vai aceitar as query strings, pois eu apontei pra o outro método.
2)Tenho a mesma dúvida sobre o método "pegaPorEscopo", se vale a pena criar ele ou não visto que o método "pegaTodosPorFiltro" aceita "scope=" por query string. E se valer a pensa criar eu aponto para o método "pegaTodosPorFiltro"(q daí vai aceitar os query strings) ou crio ele independente?

Aqui está o código do "Controller.js" para analizar:
https://github.com/Luidi1/api-escola/blob/main/src/controllers/Controller.js

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Olá Luidi! COmo vai?

Entendo suas dúvidas sobre a estrutura dos métodos no seu controlador. Vamos lá:

  1. Sobre os métodos "pegaTodosPorFiltro" e "pegaTodos": Se o método "pegaTodosPorFiltro" já cobre o caso de uso de "pegaTodos" quando não há query strings, você pode considerar simplificar o código apontando "pegaTodos" para "pegaTodosPorFiltro". Isso pode reduzir a duplicação de código e facilitar a manutenção. No entanto, é importante documentar claramente que "pegaTodos" aceitará query strings, mesmo que não as utilize. Se a intenção é manter "pegaTodos" sem suporte a query strings por questões de clareza ou design, então pode ser melhor mantê-los separados.

  2. Quanto ao método "pegaPorEscopo": Se "pegaTodosPorFiltro" já suporta o escopo através de query strings, criar um método separado pode não ser necessário, a menos que você queira oferecer uma interface mais clara ou específica para o uso de escopos. Se decidir criar "pegaPorEscopo", você pode fazê-lo apontar para "pegaTodosPorFiltro" para reutilizar a lógica existente, mas novamente, documente bem para evitar confusões sobre o que cada método aceita.

Em ambos os casos, a decisão pode depender do quão claro você quer que a interface da sua API seja e do quanto você deseja expor as funcionalidades de filtro e escopo de maneira explícita. Às vezes, métodos separados podem ajudar a comunicar melhor a intenção do código, mesmo que internamente eles compartilhem a mesma lógica.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.