Sobes.tech
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.