Golang : Muxing with Martini example

Tags : golang http web-router multiplexer martini

In this quick tutorial, we will learn how to do basic multiplexing with Martini package. One thing I really like about Martini package is that you can achieve many common tasks with just one or two lines. Learn more about this package at http://martini.codegangsta.io/. Meanwhile, this is the code example on how to do multiplexing with Martini.

 package main

 import (

 func Home(w http.ResponseWriter, r *http.Request) {
 w.Write([]byte("Hello, World!"))

 func SayHello(w http.ResponseWriter, r *http.Request, params martini.Params) {
 w.Write([]byte(fmt.Sprintf("Hello, %s!", params["name"])))

 func main() {

 mx := martini.Classic()
 mx.Get("/", Home)
 mx.Get("/:name", SayHello)

 // martini default port number is 3000
 // example on how to change to 8080
 http.Handle("/", mx)

Run the code and point your browser to http://localhost:8080/Jeff

Sample output :


Hello, World!


Hello, Jeff!

go run martinimux.go

[martini] listening on :8080 (development)

[martini] Started GET / for [::1]:65494

[martini] Completed 200 OK in 234.235µs

[martini] Started GET /Jeff for [::1]:65494

[martini] Completed 200 OK in 95.226µs

Reference :


  See also : Golang : Routes multiplexer routing example with regular expression control

Tags : golang http web-router multiplexer martini

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.