यह आलेख नकली अनुरोधों का सहारा लिए बिना या http.ResponseWriter को संशोधित किए बिना लॉगिंग उद्देश्यों के लिए HTTP प्रतिक्रिया प्राप्त करने के वैकल्पिक दृष्टिकोण पर चर्चा करता है। हम एक कार्यात्मक शैली कार्यान्वयन प्रदान करते हुए, मिडलवेयर चेनिंग की अवधारणा पेश करते हैं। ये हैंडलर, जिन्हें मिडलवेयर के रूप में जाना जाता है, अनुरोध प्राप्त करते हैं और श्रृंखला में अगले हैंडलर को आदेशित निष्पादन सुनिश्चित करते हैं।
func NewResponseLoggingHandler(next http.HandlerFunc) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
// Replace the response writer with a recorder for subsequent handlers
c := httptest.NewRecorder()
next(c, r)
// Copy data from the recorder to the original response writer
for k, v := range c.HeaderMap {
w.Header()[k] = v
}
w.WriteHeader(c.Code)
c.Body.WriteTo(w)
}
}
func NewDefaultHandler(अगला http.HandlerFunc) http.HandlerFunc {
NewResponseLoggingHandler(NewOtherStuffHandler(next)) लौटाएं
}अब, NewDefaultHandler का उपयोग करके त्वरित की गई किसी भी हैंडलर श्रृंखला में स्वचालित रूप से प्रतिक्रिया लॉगिंग और अन्य डिफ़ॉल्ट व्यवहार शामिल होंगे।func NewDefaultHandler(next http.HandlerFunc) http.HandlerFunc {
return NewResponseLoggingHandler(NewOtherStuffHandler(next))
}
h := NewDefaultHandler(...)निष्कर्ष h := NewDefaultHandler(...)
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3