Maison  >  Article  >  développement back-end  >  Comment personnaliser la gestion des erreurs HTTP 404 dans Go avec HTTProuter ?

Comment personnaliser la gestion des erreurs HTTP 404 dans Go avec HTTProuter ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-26 13:56:31474parcourir

How to Customize HTTP 404 Error Handling in Go with HTTProuter?

Personnalisation de la gestion HTTP 404 avec HTTProuter

HTTProuter offre la possibilité de gérer les réponses 404 manuellement. Pour y parvenir, une fonction de gestionnaire personnalisée doit être définie.

La structure Router de HTTProuter possède un champ NotFound de type http.Handler. L'interface http.Handler définit une méthode unique, ServeHTTP(ResponseWriter, *Request). Par conséquent, un gestionnaire personnalisé doit implémenter cette fonction.

Pour créer un gestionnaire personnalisé, définissez une fonction avec la signature func(http.ResponseWriter, *http.Request). Convertissez cette fonction en valeur http.Handler à l'aide de la fonction d'assistance http.HandlerFunc(). Par exemple :

<code class="go">func MyNotFound(w http.ResponseWriter, r *http.Request) {
    w.Header().Set("Content-Type", "text/plain; charset=utf-8")
    w.WriteHeader(http.StatusNotFound) // Set status to 404
    w.Write([]byte("My NotFound handler"))
}

router.NotFound = http.HandlerFunc(MyNotFound)</code>

Ce gestionnaire personnalisé sera déclenché par HTTProuter. Alternativement, il peut être invoqué manuellement à partir d'autres gestionnaires en transmettant les instances ResponseWriter et *Request :

<code class="go">func ResourceHandler(w http.ResponseWriter, r *http.Request) {
    if ... { // Check for resource availability
        router.NotFound(w, r)
        return
    }
    // ... Serve the resource
}</code>

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