Webserver mit Go

In diesem Beitrag soll gezeigt werden, was grundlegend notwendig ist um mit Go einen Webserver zu erstellen und auf einfache Anfragen zu Antworten.

Eine kurze Einführung in die Programmiersprache Go ist auch im Artikel "Hello World in Go" zu finden. An dieser Stelle soll es jedoch rein um die Erstellung eines Webservers gehen.

Go wird bereits mit dem Paket "net/http" geliefert und ermöglicht die Erstellung mit wenigen Funktionsaufrufen. Die wichtigsten Funktionen hierbei sind http.ListenAndServe und http.HandleFunc. Mit der ersten Funktion wird der Webserver gestartet und an einen Port gebunden. Mit der zweiten Funktion wird festgelegt, bei welchem Pfad welche Funktion aufgerufen werden soll. Im Folgenden ist ein minimales Beispiel zu sehen.

package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Willkommen")
    })

    http.ListenAndServe(":8080", nil)
}

Wurde die Anwendung zum Beispiel mit go run gestartet kann wie folgt darauf zugegriffen werden.

$ curl http://localhost:8080/
Willkommen

Im ersten Beispiel wurde eine anonyme Funktion der Funktion http.HandleFunc für die Verarbeitung der Anfrage übergeben. Dies kann bei minimalen Funktionen durchaus sinnvoll sein, erstreckt sich die Logik einer Funktion jedoch über mehr Zeilen bietet es sich an "richtige" Funktionen dafür zu verwenden. Nach den Anpassungen sieht das Beispiel wie folgt aus.

package main

import (
    "fmt"
    "net/http"
)

func index(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Willkommen")
}

func main() {
    http.HandleFunc("/", index)

    http.ListenAndServe(":8080", nil)
}

Links

Verwandte Artikel