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.
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