En este post te mostraré cómo obtener el nombre de la ruta en un middleware de Mux, una herramienta de Gorilla en el lenguaje Go.
Es decir, dentro del middleware con Go, acceder al nombre de la ruta.
Primero: dar nombre a la ruta
Recuerda que para obtener el nombre de la ruta, primero debes darle uno al definirla. Por ejemplo:
enrutador.HandleFunc("/dia_segun_fecha",func(w http.ResponseWriter, r *http.Request){
variablesUrl := r.URL.Query()["fecha"]iflen(variablesUrl)<=0{responderHttpConError(errors.New("no hay fecha en la URL"), w, r)return}
fecha := variablesUrl[0]// 2006-01-02 es layout de YYYY-MM-DD. No modificar
t, err := time.Parse("2006-01-02", fecha)if err !=nil{panic(err)}
dia := Dias[t.Weekday()]responderHttpExitoso(dia, w, r)}).Name("obtener_fecha")
En este caso mi ruta definida con Mux se llama obtener_fecha.
Obtener nombre de ruta en middleware
Para obtener el nombre de la ruta invocamos a mux.CurrentRoute(r).GetName() en donde r es el apuntador a http.Request. Esa función devolverá una cadena con el nombre de la ruta.
// En el encabezado del archivo, recuerda importar a muximport("github.com/gorilla/mux")// ...funcmiddleware(siguienteManejador http.Handler) http.Handler {return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request){// Aquí obtenemos el nombre de la ruta
nombreRuta := mux.CurrentRoute(r).GetName()if nombreRuta =="obtener_fecha"{
siguienteManejador.ServeHTTP(w, r)}else{// Oh no, no puedes ir a otra ruta}})}
Para este caso sencillo estamos suponiendo que si quiere entrar a una ruta que no es "obtener_fecha" se le deniega el acceso. De este modo puedes obtener el nombre de la ruta actual en el middleware de Go.
Estoy aquí para ayudarte
Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto
No te pierdas ninguno de mis posts
Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
En un post anterior vimos cómo responder peticiones HTTP con rutas en Go, pero las mismas no eran tan simples cuando se trataba de variables en la URL o métodos HTTP. Hoy vamos a ver un enrutador o router de Go, que permite definir rutas y métodos HTTP para responder…
El día de hoy te enseñaré a detener un servidor web creado con Go desde el propio programa. Dicho de otra manera, el servidor se va a detener a sí mismo. Para estoy hay varios enfoques pero te enseñaré 2 que yo considero son muy fáciles y no involucran canales…
Hoy vamos a ver cómo enviar una imagen al cliente desde Golang, es decir, servir una imagen en un servidor web programado con Go. Vamos a leer la imagen según su ruta y luego enviarla con los encabezados adecuados al cliente. Enviar imagen como respuesta HTTP en Golang Para esto…