"नहीं मिला" को अनुकूलित करना (404) httprouter के साथ हैंडलिंग
httprouter लाइब्रेरी का उपयोग करके एक एपीआई विकसित करते समय, 404 को संभालना (नहीं मिला) प्रतिक्रियाएँ एक महत्वपूर्ण कार्य है। जबकि दस्तावेज़ में 404 को मैन्युअल रूप से संभालने की संभावना का उल्लेख है, एक कस्टम हैंडलर को लागू करना चुनौतीपूर्ण हो सकता है।
नॉटफ़ाउंड फ़ील्ड को समझना
httprouter.Router संरचना में एक फ़ील्ड शामिल है NotFound, जो http.Handler प्रकार का है। इसका मतलब यह है कि NotFound के मान को http.Handler इंटरफ़ेस में मौजूद ServeHTTP विधि को लागू करना होगा। कस्टम हैंडलर, आप ServeHTTP विधि से मेल खाने वाले हस्ताक्षर के साथ एक फ़ंक्शन बना सकते हैं:
func MyNotFound(w http.ResponseWriter, r *http.Request) { // ... कस्टम हैंडलिंग तर्क }
फ़ंक्शन को हैंडलर में कनवर्ट करना
func MyNotFound(w http.ResponseWriter, r *http.Request) {
// ... Custom handling logic
}
राउटर:= httprouter.New() Router.NotFound = http.HandlerFunc(MyNotFound)
कस्टम हैंडलर का मैन्युअल आह्वान
router := httprouter.New()
router.NotFound = http.HandlerFunc(MyNotFound)
func resourceHandler(w http.ResponseWriter, r *http.Request) { // ... संसाधन वैधता निर्धारित करने के लिए कोड यदि !संसाधनमौजूद है { MyNotFound(w, r) // कस्टम हैंडलर का मैन्युअल आह्वान वापस करना } // ...संसाधन मौजूद है, इसे सामान्य रूप से परोसें }
निष्कर्ष
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
}
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3