"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > Httprouter के साथ गो में 404 (नहीं मिला) प्रतिक्रियाओं को कैसे अनुकूलित करें?

Httprouter के साथ गो में 404 (नहीं मिला) प्रतिक्रियाओं को कैसे अनुकूलित करें?

2024-11-01 को प्रकाशित
ब्राउज़ करें:999

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

"नहीं मिला" को अनुकूलित करना (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