Heim > Artikel > Backend-Entwicklung > Golang implementiert http
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" )2. HTTP-Dienst implementieren
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!")) }3. Führen Sie den http-Dienst aus
Wir geben das Projektstammverzeichnis in der Befehlszeile ein und führen dann den folgenden Befehl aus:
go run main.goZu diesem Zeitpunkt geben wir http://localhost:8080 in den Browser ein und Sie können siehe „Hallo Welt!“ Dies ist eine vollständige HTTP-Dienstimplementierung. 4. Routenanpassung
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)Wenn http://localhost:8080/user angefordert wird, wird die userHandler-Funktion ausgeführt, wenn http://localhost:8080/book angefordert wird. Die bookHandler-Funktion wird ausgeführt. 5. Middleware
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 diesem Code definieren wir eine logMiddleware-Middleware und wickeln myHandler darin ein. Der Rückgabewert der logMiddleware-Funktion ist eine Funktion, die einen ResponseWriter und Request-Parameter empfängt, die Methode, den Pfad und die Verarbeitungszeit der aktuellen Anforderung innerhalb der Funktion ausgibt und schließlich next aufruft, um die Ausführung fortzusetzen. In praktischen Anwendungen können wir der logMiddleware-Implementierung weitere Logik hinzufügen, z. B. Identitätsauthentifizierung, Überprüfung von Anforderungsparametern usw. 6. Fehlerbehandlung
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 Code versuchen wir, eine Datei zu öffnen, die nicht existiert, und verwenden http.Error, um eine Fehlerantwort zurückzugeben, wenn ein Fehler auftritt. Der erste Parameter von http.Error stellt die Antwort dar; der zweite Parameter ist die Fehlermeldung und der dritte Parameter ist der http-Statuscode. 7. Zusammenfassung
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!