1
resposta

Service

Nesse caso, preciso passar o repository dentro do service porque ao mudar para ResponseEntity, perde a função de salvar, etc..? Fiquei um pouco em dúvida.

1 resposta

Olá, Rodrigo!

Entendo que a mudança para ResponseEntity possa ter gerado algumas dúvidas. Vou tentar esclarecer isso para você.

A resposta para sua pergunta é sim, você precisa passar o repository para a classe service. Isso ocorre porque a classe service é responsável por executar as regras de negócio e as validações da aplicação, e muitas vezes essas regras envolvem interações com o banco de dados, que são realizadas através do repository.

Por exemplo, na classe AgendaDeConsultas que foi criada na aula, o método agendar() precisa salvar um agendamento no banco de dados. Para isso, ele usa o método save() do ConsultaRepository. Portanto, o ConsultaRepository é injetado na classe AgendaDeConsultas usando a anotação @Autowired:

@Service
public class AgendaDeConsultas {

    @Autowired
    private ConsultaRepository consultaRepository;

    public void agendar(DadosAgendamentoConsulta dados) {
        var consulta = new Consulta();
        consultaRepository.save(consulta);
    }

}

A mudança para ResponseEntity não afeta a necessidade de passar o repository para a classe service. O ResponseEntity é usado no controller para encapsular a resposta HTTP, incluindo o status da resposta e o corpo da resposta. No entanto, o controller ainda precisa chamar a classe service para executar as regras de negócio, e a classe service ainda precisa do repository para interagir com o banco de dados.

Portanto, mesmo com a mudança para ResponseEntity, a classe service ainda precisa do repository.

Espero ter ajudado e bons estudos!