Golang: validar parámetros GET en URL con servidor HTTP
En este post vamos a ver cómo validar y obtener los parámetros GET pasados en la URL cuando estamos leyendo la petición de un servidor HTTP. Recuerda que con net/http podemos obtener el mapa de parámetros con http.Request.URL.Query, luego cuando accedemos a una clave nos devolverá un arreglo con todos los valores para esa clave GET y finalmente si solo queremos el primero accederemos a la posición 0 de ese arreglo. Yo te enseñaré cómo pasar de esta validación: variablesGet := r.URL.Query() fechaInicioComoArreglo := variablesGet["fechaInicio"] fechaFinComoArreglo := variablesGet["fechaFin"] if len(fechaInicioComoArreglo) <= 0 { return nil, errors.New("no hay fechaInicio") } if len(fechaFinComoArreglo) <= 0 { return nil, errors.New("no hay fechaFin") } A esta más limpia: valores, err := validarParametrosGetDePeticionHttp(r, []string{"fechaInicio", "fechaFin"}) if err != nil { return nil, err } fechaInicio, fechaFin := valores[0], valores[1] De este modo podremos validar que el parámetro GET se encuentre presente en la petición HTTP además de que no esté vacío, y no importará la cantidad, siempre tendremos las mismas líneas. Nota: seguramente habrá frameworks o librerías que ya hacen el trabajo. Yo lo haré usando solo la librería estándar y el paquete net/http de Golang. ...