Maison  >  Article  >  développement back-end  >  Comment transférer efficacement les données du middleware vers les gestionnaires dans Go ?

Comment transférer efficacement les données du middleware vers les gestionnaires dans Go ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-09 05:46:02941parcourir

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

Transfert de données du middleware vers les gestionnaires

Dans le développement Web moderne, le middleware et les gestionnaires collaborent souvent pour traiter les demandes. Pour éviter la duplication de code, il est crucial de transférer efficacement les données du middleware vers les gestionnaires.

Considérez le scénario dans lequel le middleware intercepte et prépare les données, comme l'analyse des JWT à partir du corps de la requête. Le partage de ces données analysées avec les gestionnaires élimine les duplications inutiles.

Utilisation du package de contexte Gorilla

Si vous utilisez la boîte à outils Gorilla, exploitez son package de contexte. Cela vous permet de définir et de récupérer des données du contexte de la requête sans modifier les signatures de méthode.

// 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")
})

Remarque : Le package de contexte Gorilla est maintenant en mode maintenance et il est recommandé d'utiliser le Contexte Go natif.Fonctionnalité Contexte introduite dans Go 1.7.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn