How to use wildcard or a variable in our URL for complex routing?
From Gorilla web toolkit the
gorilla/mux
is used to create flexible routes that allow regular expressions to dictate available variables for routers.The following source code snippet shows an abbreviated program with a (very basic) regular expression in the handler.
We're assigning any number of digits after
/pages/
to a parameter named id in {id:[0-9]+}
.This is the value we determine in pageHandler
.
1.html:
Golang Template Example
ONE
Example
package main
import (
"github.com/gorilla/mux"
"net/http"
)
const (
PORT = ":8080"
)
func pageHandler(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
varId := vars["id"]
fileName := varId + ".html"
http.ServeFile(w,r,fileName)
}
func main() {
rtr := mux.NewRouter()
rtr.HandleFunc("/number/{id:[0-9]+}", pageHandler)
http.Handle("/", rtr)
http.ListenAndServe(PORT, nil)
}
Now run url
http://localhost:8080/number/1
in your browser and see the below contentMost Helpful This Week
How to wait for Goroutines to Finish Execution?
How to print struct variables data in Golang?
How to get struct variable information using reflect package?
Split a character string based on change of character
How to replace emoji characters in string using regex in Golang?
How to reads and decodes JSON values from an input stream?