Skip to content

Instantly share code, notes, and snippets.

@eikaas
Created September 10, 2015 22:17
Show Gist options
  • Save eikaas/9e9b47d3a94ca94f9d96 to your computer and use it in GitHub Desktop.
Save eikaas/9e9b47d3a94ca94f9d96 to your computer and use it in GitHub Desktop.
Simple webserver in golang
package main
// Simple webserver i golang
// Importere libraries og stuff
import "fmt"
import "net/http"
import "github.com/gorilla/mux"
// Main entry point i programmet.
func main() {
// Lager en router med gorilla's http multiplexer, router.
router := mux.NewRouter().StrictSlash(false)
// Registrerer en route, http://localhost/kenneth,
// sender dette videre til funksjonen: kennethHandler(w http.ResponseWriter, r *http.Request)
router.Methods("GET").Path("/kenneth").HandlerFunc(kennethHandler)
// Aktiverer http pakkens webserver og sender den http routeren
http.ListenAndServe(":8080", router)
}
// Her tar en en w, denne kan vi skrive til for å sende dettilbake tli browseren
// Eventuell data fra browseren hentes fra r. f.eks user agent
func kennethHandler(w http.ResponseWriter, r *http.Request) {
// Skrive til w med Write-metoden. Den tar et array av bytes (så vi må "caste" det)
w.Write([]byte("This is, Kenneths homepage of funny cats n shit"))
// Printer brukerns UserAgent til console.
fmt.Println(r.UserAgent())
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment