Sobes.tech
Junior — Middle

¿Puedes explicar el papel del controlador en la estructura de arquitectura limpia?

sobes.tech AI

Respuesta de la IA

En la arquitectura limpia, el controlador actúa como intermediario entre el mundo exterior (por ejemplo, solicitudes HTTP) y las capas internas de la aplicación.

Funciones principales del controlador:

  • Recibe solicitudes entrantes.
  • Extrae los datos necesarios de la solicitud.
  • Llama a los casos de uso o interactuadores correspondientes.
  • Forma la respuesta para el cliente.

El controlador no contiene lógica de negocio, simplemente dirige datos y comandos a las partes necesarias del sistema.

Ejemplo en 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, "Usuario no encontrado", http.StatusNotFound)
        return
    }
    json.NewEncoder(w).Encode(user)
}

Aquí, el controlador recibe la solicitud, llama a la lógica de negocio y devuelve el resultado al cliente.