"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment personnaliser les réponses 404 (introuvables) dans Go avec httprouter ?

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

Publié le 2024-11-01
Parcourir:789

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 :

func MyNotFound(w http.ResponseWriter, r *http.Request) {
    // ... Custom handling logic
}

Conversion de la fonction en gestionnaire

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

router := httprouter.New()
router.NotFound = http.HandlerFunc(MyNotFound)

Invocation manuelle du gestionnaire personnalisé

Si vous souhaitez appeler votre gestionnaire personnalisé manuellement à partir d'autres gestionnaires, indiquez le gestionnaire avec un ResponseWriter et un *Request:

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
}

Conclusion

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

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3