1. Einführung
Mit der zunehmenden Beliebtheit der RESTful-API versuchen immer mehr Entwickler, selbst HTTP-Dienste zu entwickeln. Als effiziente und hochgradig parallele Sprache kann uns die Net/http-Bibliothek von Golang dabei helfen, auf einfache Weise zuverlässige und leistungsstarke http-Dienste zu erstellen. Heute lernen wir, wie man Golang zur Implementierung von http verwendet.
2. Vorbereitung
Wir müssen zuerst die Golang-Umgebung installieren und Golangs Paketverwaltungstool go mod verwenden, um unsere Paketabhängigkeiten zu verwalten.
3. Golang implementiert http
Wir können die net/http-Bibliothek verwenden, um den http-Dienst zu implementieren. Die spezifischen Schritte sind wie folgt:
1. Importieren Sie das net/http-Paket Paket, um es zu verwenden http-dienstbezogene Schnittstelle, und wir verwenden das fmt-Paket, um Protokolle auszugeben.
import ( "fmt" "net/http" )
Wir können den HTTP-Dienst implementieren, indem wir die von der net/http-Bibliothek bereitgestellte Schnittstelle aufrufen. Unter anderem wird http.HandleFunc zum Registrieren von Routen verwendet. Die Parameter resp und req in der Callback-Funktion repräsentieren Antwort bzw. Anfrage.
func main() { http.HandleFunc("/", myHandler) http.ListenAndServe(":8080", nil) } func myHandler(resp http.ResponseWriter, req *http.Request) { fmt.Println("收到请求!") resp.Write([]byte("Hello world!")) }
Wir geben das Projektstammverzeichnis in der Befehlszeile ein und führen dann den folgenden Befehl aus:
go run main.go
In der tatsächlichen Entwicklung müssen wir unterschiedliche Verarbeitungslogiken für unterschiedliche Routen angeben. Das http-Paket in Golang bietet eine einfache Route-Matching-Methode, bei der die Funktion http.HandleFunc zum Registrieren von Routen verwendet wird.
http.HandleFunc("/user", userHandler) http.HandleFunc("/book", bookHandler)
Middleware ist ein sehr verbreitetes Muster, das eine wichtige Rolle im Verarbeitungsprozess von http-Anfragen spielt. Die http-Bibliothek in Golang bietet eine einfache Möglichkeit, Middleware zu implementieren. Wir können http.HandlerFunc verwenden, um eine Funktion zur Implementierung von Middleware zu kapseln.
func logMiddleware(next http.HandlerFunc) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { start := time.Now() next(w, r) fmt.Printf("%s %s ", r.Method, r.URL.Path, time.Since(start)) } } http.HandleFunc("/", logMiddleware(myHandler))
In praktischen Anwendungen müssen wir Fehler behandeln, die bei http-Anfragen auftreten können. Die http-Bibliothek von Golang bietet eine einfache Fehlerbehandlungsmethode mithilfe der Funktion http.Error.
func myHandler(w http.ResponseWriter, r *http.Request) { file, err := os.Open("abc.txt") if err != nil { http.Error(w, err.Error(), http.StatusBadRequest) return } defer file.Close() }
In diesem Artikel haben wir vorgestellt, wie man Golang zur Implementierung des HTTP-Dienstes verwendet. Insbesondere haben wir gelernt, wie man die Net/http-Bibliothek von Golang verwendet, um http-Dienste, Routenabgleich, Middleware und Fehlerbehandlung zu implementieren. Für Anfänger reicht die Beherrschung dieser Wissenspunkte aus, um einen einfachen http-Dienst zu schreiben.
Das obige ist der detaillierte Inhalt vonGolang implementiert http. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!