Maison  >  Article  >  développement back-end  >  Comment personnaliser les réponses 404 (introuvables) dans Go avec httprouter ?

Comment personnaliser les réponses 404 (introuvables) dans Go avec httprouter ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-26 02:24:021004parcourir

How to Customize 404 (Not Found) Responses in Go with httprouter?

Personnalisation de "Not Found" (404) Gestion avec httprouter

Lors du développement d'une API à l'aide de la bibliothèque httprouter, gestion de 404 (Not Found) les réponses constituent une tâche cruciale. Bien que la documentation mentionne la possibilité de gérer les 404 manuellement, la mise en œuvre d'un gestionnaire personnalisé peut s'avérer difficile.

Comprendre le champ NotFound

La structure httprouter.Router comprend un champ nommé NotFound, qui est de type http.Handler. Cela signifie que la valeur de NotFound doit implémenter la méthode ServeHTTP présente dans l'interface http.Handler.

Création d'un gestionnaire "Not Found" personnalisé

Pour définir le vôtre gestionnaire personnalisé, vous pouvez créer une fonction avec une signature correspondant à la méthode ServeHTTP :

<code class="go">func MyNotFound(w http.ResponseWriter, r *http.Request) {
    // ... Custom handling logic
}</code>

Conversion de la fonction en gestionnaire

Pour convertir votre fonction en valeur qui implémente l'interface http.Handler, vous pouvez utiliser la fonction d'assistance http.HandlerFunc() :

<code class="go">router := httprouter.New()
router.NotFound = http.HandlerFunc(MyNotFound)</code>

Invocation manuelle du gestionnaire personnalisé

Si vous souhaitez appelez votre gestionnaire personnalisé manuellement à partir d'autres gestionnaires, fournissez au gestionnaire un ResponseWriter et une *Requête :

<code class="go">func ResourceHandler(w http.ResponseWriter, r *http.Request) {
    // ... Code to determine resource validity

    if !resourceExists {
        MyNotFound(w, r) // Manual invocation of custom handler
        return
    }

    // ... Resource exists, serve it normally
}</code>

Conclusion

En suivant ces étapes, vous pouvez personnalisez efficacement le processus de gestion des « Introuvable » dans votre API basée sur httprouter, en garantissant que les utilisateurs reçoivent des réponses appropriées lorsqu'ils tentent d'accéder à des ressources inexistantes.

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