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 :
Définissez une fonction avec la signature suivante :
<code class="go">func(http.ResponseWriter, *http.Request)</code>
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>
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>
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>
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!