Golang : HttpRouter multiplexer routing example
HttpRouter attempts to transcend other Golang multiplexers by claiming to have better variables and routing supports. It also claimed to scale better.
HttpRouter handles parameters differently from other routers/multiplexers. For example, it requires 3rd parameters in a function to get the URL parameters.
params httprouter.Params
instead of inside the function block
params := r.URL.Query()
name := params.Get(":name")
This is a code example on how to use HttpRouter.
package main
import (
"fmt"
"github.com/julienschmidt/httprouter"
"net/http"
)
func SayHelloWorld(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
w.Write([]byte("Hello, World!"))
}
func ReplyName(w http.ResponseWriter, r *http.Request, params httprouter.Params) {
//parameters := r.URL.Query()
name := params.ByName("name")
w.Write([]byte(fmt.Sprintf("Hello %s !", name)))
}
func main() {
mx := httprouter.New()
mx.GET("/", SayHelloWorld)
mx.GET("/:name", ReplyName)
http.Handle("/", mx)
http.ListenAndServe(":8080", mx)
}
Sample output :
http://localhost:8080/Adam
Hello Adam !
http://localhost:8080/
Hello World !
For a full list of HttpRouter's features, please see https://github.com/julienschmidt/httprouter#features
Reference :
See also : Golang : Pat multiplexer routing example
By Adam Ng
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+8.1k Golang : Get final or effective URL with Request.URL example
+12.1k Golang : Print UTF-8 fonts on image example
+29.7k Golang : How to declare kilobyte, megabyte, gigabyte, terabyte and so on?
+16k Golang : How to check if input from os.Args is integer?
+9.3k Golang : Qt Yes No and Quit message box example
+6.7k Golang : Muxing with Martini example
+19.1k Golang : Delete item from slice based on index/key position
+6.9k Javascript : How to get JSON data from another website with JQuery or Ajax ?
+23.6k Golang : Fix type interface{} has no field or no methods and type assertions example
+12.1k Golang : calculate elapsed run time
+12.5k Golang : Get absolute path to binary for os.Exec function with exec.LookPath
+19.4k Golang : Get current URL example