Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvidas

Por que no método "cancelar()" é necessário verificar se o id da consulta existe?

public void cancelar(DadosCancelamentoConsulta dados) {
    if (!consultaRepository.existsById(dados.idConsulta())) {
        throw new ValidacaoException("Id da consulta informado não existe!");
    }

    var consulta = consultaRepository.getReferenceById(dados.idConsulta());
    consulta.cancelar(dados.motivo());
}

Eu imagino que na interface com o usuário serão listadas as consultas marcadas e, a partir de uma delas, partir a requisição de cancelamento. Logo, não há necessidade da verificação do id da consulta.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Olá Benedito! Como vai?

A verificação da existência do id da consulta no método cancelar() é uma prática importante de programação defensiva. Mesmo que na interface do usuário as consultas marcadas sejam listadas e pareça que não haveria como um id inexistente ser enviado, essa verificação serve como uma camada adicional de segurança no backend.

Existem algumas razões pelas quais essa verificação é útil:

  • Integridade dos Dados: Garante que a operação de cancelamento só será realizada em consultas que realmente existem, evitando possíveis erros ou inconsistências nos dados.

  • Segurança: Em um cenário onde alguém tenta fazer requisições diretamente à API (sem passar pelo frontend), essa verificação previne tentativas de cancelamento de consultas que não existem, o que poderia ser uma tentativa de ataque ou exploração de vulnerabilidades.

  • Manutenção e Evolução do Código: À medida que o sistema evolui, novas funcionalidades podem ser adicionadas e o fluxo de dados pode se tornar mais complexo. A verificação ajuda a manter o sistema robusto frente a mudanças futuras.

Portanto, mesmo que pareça redundante em um primeiro momento, essa verificação é uma boa prática para manter a aplicação segura e confiável. Além disso, ajuda a manter um contrato claro de como a API deve ser consumida e quais são as expectativas para os dados recebidos.

Espero ter esclarecido essa questão e bons estudos!

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