Junior — Middle
Pode explicar o papel do controlador na estrutura da arquitetura limpa?
sobes.tech IA
Resposta da IA
Na arquitetura limpa, o controlador atua como um intermediário entre o mundo exterior (por exemplo, pedidos HTTP) e as camadas internas da aplicação.
Principais funções do controlador:
- Recebe pedidos de entrada.
- Extrai os dados necessários do pedido.
- Chama os casos de uso ou interatores correspondentes.
- Forma a resposta para o cliente.
O controlador não contém lógica de negócio, apenas direciona dados e comandos para as partes necessárias do sistema.
Exemplo em Go (simplificado):
func UserController(w http.ResponseWriter, r *http.Request) {
userID := r.URL.Query().Get("id")
user, err := userUseCase.GetUserByID(userID)
if err != nil {
http.Error(w, "Utilizador não encontrado", http.StatusNotFound)
return
}
json.NewEncoder(w).Encode(user)
}
Aqui, o controlador recebe a solicitação, chama a lógica de negócio e devolve o resultado ao cliente.