Golang : Denco multiplexer example
Kinda free today to test out couple of Golang's web multiplexers. One of the most interesting multiplexers that I've tried is the Denco package. It is pretty straightforward to use and you can get the posted values easily with denco.Params
.
Redirecting to different functions based on URL path patterns can be done easily too with the []denco.Record
type. (see http://godoc.org/github.com/naoina/denco#Record)
This example will focus on the multiplexer section of Denco and it is taken with slight modification from https://github.com/naoina/denco
.
package main
import (
"fmt"
"github.com/naoina/denco"
"net/http"
)
func Home(w http.ResponseWriter, r *http.Request, params denco.Params) {
w.Write([]byte("Hello, World!"))
}
func HelloUser(w http.ResponseWriter, r *http.Request, params denco.Params) {
w.Write([]byte(fmt.Sprintf("Hello, %s!", params.Get("name"))))
}
func main() {
mx := denco.NewMux()
handler, err := mx.Build([]denco.Handler{
mx.GET("/", Home),
mx.GET("/hellouser/:name", HelloUser),
mx.POST("/hellouser/:name", HelloUser),
})
if err != nil {
panic(err)
}
http.ListenAndServe(":8080", handler)
}
Sample output :
http://localhost:8080/hellouser/Adam
Hello, Adam!
Reference :
See also : Golang : Routes multiplexer routing example with regular expression control
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
+17.1k Google Chrome : Your connection to website is encrypted with obsolete cryptography
+8.1k Golang : Metaprogramming example of wrapping a function
+23.9k Golang : Upload to S3 with official aws-sdk-go package
+11.8k Golang : How to parse plain email text and process email header?
+34.4k Golang : How to stream file to client(browser) or write to http.ResponseWriter?
+8.8k Golang : What is the default port number for connecting to MySQL/MariaDB database ?
+31.3k Golang : Example for ECDSA(Elliptic Curve Digital Signature Algorithm) package functions
+19.1k Golang : Get host name or domain name from IP address
+11.6k Golang : convert(cast) float to string
+18.3k Golang : Aligning strings to right, left and center with fill example
+8k Golang : Append and add item in slice
+10.8k Golang : Replace a parameter's value inside a configuration file example