Heim >Backend-Entwicklung >Golang >Wie überträgt man Daten effektiv von der Middleware an die Handler in Go?

Wie überträgt man Daten effektiv von der Middleware an die Handler in Go?

Linda Hamilton
Linda HamiltonOriginal
2024-11-09 05:46:02962Durchsuche

How to Effectively Transfer Data from Middleware to Handlers in Go?

Datenübertragung von Middleware zu Handlern

In der modernen Webentwicklung arbeiten Middleware und Handler oft zusammen, um Anfragen zu verarbeiten. Um die Duplizierung von Code zu vermeiden, ist die effektive Übertragung von Daten von der Middleware an Handler von entscheidender Bedeutung.

Stellen Sie sich das Szenario vor, in dem Middleware Daten abfängt und vorbereitet, z. B. beim Parsen von JWTs aus dem Anforderungstext. Durch die Weitergabe dieser geparsten Daten an Handler werden unnötige Duplikate vermieden.

Verwendung des Gorilla-Kontextpakets

Wenn Sie das Gorilla-Toolkit verwenden, nutzen Sie dessen Kontextpaket. Dadurch können Sie Daten aus dem Anforderungskontext festlegen und abrufen, ohne Methodensignaturen zu ändern.

// Middleware
http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
    // Middleware operations
    token := jwtParser(r)
    context.Set(r, "token", token)

    next.ServeHTTP(w, r)
})

// Handler
http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
    token := context.Get(r, "token")
})

Hinweis: Das Gorilla-Kontextpaket befindet sich jetzt im Wartungsmodus und es wird empfohlen, das zu verwenden nativer Go-Kontext.Context-Funktion eingeführt in Go 1.7.

Das obige ist der detaillierte Inhalt vonWie überträgt man Daten effektiv von der Middleware an die Handler in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn