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
- Webseite: Go (englisch)
- Wikipedia: Go (Programmiersprache) (deutsch)