Maison > développement back-end > Golang > le corps du texte

Comment gérer les erreurs 404 avec des gestionnaires personnalisés dans httprouter ?

Mary-Kate Olsen
Libérer: 2024-10-28 03:47:30
original
772 Les gens l'ont consulté

How to Handle 404 Errors with Custom Handlers in httprouter?

Gestion des erreurs 404 avec les gestionnaires personnalisés de httprouter

Dans une API HTTP construite avec httprouter, la gestion des erreurs 404 (introuvables) nécessite un gestionnaire personnalisé . La documentation mentionne cette possibilité, mais elle ne fournit pas d'instructions explicites sur la façon d'en créer un.

Configuration d'un gestionnaire personnalisé

Pour gérer manuellement les erreurs 404, suivez ces étapes :

  1. Définissez une fonction avec la signature suivante :

    <code class="go">func(http.ResponseWriter, *http.Request)</code>
    Copier après la connexion
  2. Convertissez la fonction en un http.Handler à l'aide du http. Fonction d'assistance HandlerFunc().

    <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) // StatusNotFound = 404
        w.Write([]byte("My own Not Found handler."))
    
        // or with more detailed message
        w.Write([]byte(" The page you requested could not be found."))
    }</code>
    Copier après la connexion
  3. Attribuez le gestionnaire MyNotFound au champ NotFound du httprouter :

    <code class="go">var router *httprouter.Router = ... // Your router value
    router.NotFound = http.HandlerFunc(MyNotFound)</code>
    Copier après la connexion

Invocation manuelle du gestionnaire personnalisé

Dans vos gestionnaires, vous pouvez appeler manuellement le gestionnaire MyNotFound, si nécessaire, en passant le ResponseWriter et *Request :

<code class="go">func ResourceHandler(w http.ResponseWriter, r *http.Request) {
    exists := ... // Find out if requested resource is valid and available
    if !exists {
        MyNotFound(w, r) // Pass ResponseWriter and Request
        // Or via the Router:
        // router.NotFound(w, r)
        return
    }
    // Resource exists, serve it
    // ...
}</code>
Copier après la connexion

En implémentant ces derniers étapes, vous pouvez gérer efficacement les erreurs 404 dans votre API basée sur httprouter et personnaliser le comportement selon vos besoins.

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