Olá, Lucas!
Boa questão!
A razão pela qual o cadastro de usuários foi encapsulado em um serviço é para separar as responsabilidades do controlador. O controlador deve lidar apenas com as requisições das pessoas usuárias, enquanto a lógica de cadastro em si deve ser tratada em outro local.
Ao colocarmos a lógica de cadastro diretamente no controlador, acabamos criando uma dependência direta com o IMapper
e o UserManager
. Além disso, tornamos o código do controlador mais complexo e exposto, dificultando a reutilização dessa lógica em outros contextos.
Com o encapsulamento da lógica de cadastro em um serviço, podemos isolá-la e torná-la mais modular. Dessa forma, podemos reutilizá-la em diferentes partes da aplicação, caso seja necessário. Além disso, facilita a manutenção do código, pois cada parte tem sua responsabilidade bem definida.
No caso dos cursos anteriores, pode ser que a abordagem não tenha sido utilizada por falta de necessidade no contexto das APIs específicas abordadas. Cada contexto pode demandar uma abordagem diferente, e é importante entendermos os conceitos e adaptá-los de acordo com as necessidades específicas de cada projeto.
Espero ter ajudado e bons estudos!