This is going to be short and sweet. I have been looking at getting into Go for awhile but lacked incentive. That has, as of a week ago, changed and it’s full speed ahead.

For this I will be using Gorilla MUX. If you haven’t taken a look at the Gorilla toolkit yet I highly recommend it. I really enjoy using it, the use as individual components really resonates with me and my style of coding.


Setup for this is pretty fast, go get

The Meat and Potatos

The main.go for this is pretty simple, but if you haven’t used net/http from the Golang standard library you might be scratching your head trying to figure out what’s going on.

Example main.go
package main

import (

func ArticleHandler(w http.ResponseWriter, r *http.Request) {
    fmt.Println("Article URI")

func main() {
    // Create a new Router instance
    router := mux.NewRouter()

    // Add the URI /article to be handled by the ArticleHandler method
    router.HandleFunc("/article", ArticleHandler)

    // Add the URI / to be handled by a closure
    router.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Println("Root URI")

    // Pass our router to net/http
    http.Handle("/", router)

    // Listen and serve on localhost:8080
    http.ListenAndServe(":8080", nil)

Alright, that’s cool so what do we do with it?

Well, sounds like a great way build a back end service and a separate front end application using something like AngularJS.

Next article I will go into more detail. Until then, you can check out the code for this series here: HelloBlog

As always, if there are errors or you have a suggestion send me a message.