Maison > développement back-end > Golang > Comment Go Middleware peut-il gérer les gestionnaires de retour d'erreurs ?

Comment Go Middleware peut-il gérer les gestionnaires de retour d'erreurs ?

Mary-Kate Olsen
Libérer: 2024-11-29 01:43:11
original
607 Les gens l'ont consulté

How Can Go Middleware Handle Error-Returning Handlers?

Modèle de middleware avec gestionnaires de retour d'erreurs dans Go

Le modèle de middleware Go fournit un moyen pratique de composer des gestionnaires HTTP modulaires qui effectuent collectivement des tâches spécifiques. opérations avant, pendant ou après l’exécution de la fonction du gestionnaire principal. Cependant, ce modèle ne prend généralement pas en charge les gestionnaires qui renvoient des erreurs.

Pour remédier à cette limitation, on peut implémenter un middleware qui sert d'adaptateur pour les gestionnaires renvoyant des erreurs en traduisant l'erreur qu'ils renvoient en une réponse HTTP. . Ce middleware peut être ajouté comme dernier middleware de la chaîne, gérant le résultat final des gestionnaires composés. Voici un exemple :

type errorHandler func(http.ResponseWriter, *http.Request) error

func (f errorHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
    err := f(w, r)
    if err != nil {
        // log.Println(err)
        fmt.Println(err)
        os.Exit(1)
    }
}
Copier après la connexion

Ce middleware encapsule un gestionnaire de retour d'erreurs et garantit que toutes les erreurs qu'il génère sont traitées de manière appropriée. Pour utiliser ce middleware, créez simplement un wrapper pour le gestionnaire de retour d'erreur :

func errorHandle(w http.ResponseWriter, r *http.Request) error {
    w.Write([]byte(`Hello World from errorHandle!`))
    return nil
}
Copier après la connexion

Et puis combinez-le avec votre chaîne de middleware, qui peut inclure d'autres middlewares qui ne renvoient pas d'erreurs :

middlewareChain := moreMiddleware(myMiddleware)
http.Handle("/", middlewareChain(errorHandler(errorHandle)))
Copier après la connexion

Cette approche vous permet de combiner le gestionnaire de retour d'erreurs avec d'autres middlewares de manière transparente, garantissant que toutes les erreurs sont traitées par le middleware du gestionnaire d'erreurs à la fin du processus. chaîne.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal