गो रेस्टी

Go Resty एक गो भाषा पुस्तकालय है जो RESTful API क्लाइंट बनाने के लिए है। यह एक संक्षिप्त और शक्तिशाली API प्रदान करता है जो डेवेलपर्स को आसानी से HTTP रिक्वेस्ट भेजने और प्रतिक्रिया संभालने की सुविधा प्रदान करता है।

विशेषताएँ

  • GET, POST, PUT, DELETE, HEAD, PATCH, OPTIONS, और अन्य रिक्वेस्ट मेथड का समर्थन
  • सरल और चेनेबल सेटिंग्स और रिक्वेस्ट मेथड्स
  • रिक्वेस्ट बॉडी string, []byte, struct, map, slice, और io.Reader के प्रकार का हो सकता है
    • स्वचालित रूप से Content-Type का पता लगाता है
    • io.Reader के लिए अनबफर्ड प्रसंस्करण का उपयोग करता है
    • मध्यवर्ती और रिक्वेस्ट क्रियान्वयन में ऑरिजिनल *http.Request इंस्टेंस कू Request.RawRequest के माध्यम से पहुंचकरी जा सकता है
    • Request.RawRequest.GetBody() के माध्यम से रिक्वेस्ट बॉडी के मल्टिपल रीडिंग की अनुमति देता है
  • प्रतिक्रिया ऑब्जेक्ट के साथ और भी संभावनाएँ प्रदान करता है
    • response.Body() के रूप में प्रतिक्रिया को []byte एरे के रूप में पहुंचता है, अथवा response.String() के रूप में string के रूप में
    • प्रतिक्रिया का समय response.Time() और प्राप्ति का समय response.ReceivedAt() प्राप्त करता है
  • स्वचालित रूप से JSON और XML जैसे कंटेंट टाइप्स को एनकोड और डीकोड करता है
    • Content-Type हेडर और struct/map पैरामीटर प्रदान नहीं होते हैं तो यह डिफ़ॉल्ट रूप से JSON पर काम करता है
    • JSON एन्कोडिंग/डिकोडिंग और XML एन्कोडिंग/डिकोडिंग को अओवरराइड करने के लिए विकल्प प्रदान करता है
  • multipart/form-data के माध्यम से एक या एक से अधिक फ़ाइलों को सरलता से अपलोड करता है
    • फ़ाइलों के Content-Type को स्वचालित रूप से पता लगाता है
  • बैकऑफ रिट्राई मेकेनिज़म और रिट्राई स्थिति कार्य संदर्भ का समर्थन करता है
  • HTTP और REST रिक्वेस्ट्स के लिए मिडडलवेयर समर्थन, इनक्लूडिंग रिक्वेस्ट और प्रतिक्रिया के लिए Resty क्लाइंट
  • Request.SetContext का समर्थन करता है
  • BasicAuth और Bearer टोकन्स के लिए अधिकृतता विकल्प
  • सभी रिक्वेस्ट्स या विशिष्ट रिक्वेस्ट्स के लिए रिक्वेस्ट ContentLength मान सेट करता है
  • कस्टम रूट सर्टिफ़िकेट्स और क्लाइंट सर्टिफ़िकेट्स
  • फ़ाइल को सीधे HTTP प्रतिक्रिया को डाउनलोड/सेव करता है, curl -o कमांड के समान
  • कुकीज के लिए रिक्वेस्ट और CookieJar समर्थन
  • होस्ट URL के बजाय SRV रिकॉर्ड्स पर आधारित रिक्वेस्ट्स
  • Timeout, RedirectPolicy, Proxy, TLSClientConfig, Transport आदि जैसी क्लाइंट सेटिंग्स
  • Resty डिज़ाइन
    • क्लाइंट स्तर पर सेट और चयन, रिक्वेस्ट स्तर पर ओवरराइड करने का विकल्प
    • रिक्वेस्ट्स और प्रतिक्रियाओं के लिए मिडडलवेयर
    • आवश्यकता अनुसार resty.New() का उपयोग करके मल्टीपल क्लाइंट्स बनाने की अनुमति देता है
  • कंकरेंसी के लिए गोरूटीन सुरक्षित
  • डीबग मोड - स्पष्ट और समृद्ध लॉग प्रदर्शन
  • ग्ज़िप - गो स्वचालित रूप से इसे हैंडल करता है, रेस्टी में फॉलबैक हैंडलिंग के साथ
  • HTTP/2 और HTTP/1.1 के साथ संगत
  • बेज़ल समर्थन
  • Resty के लिए आसान मॉकिंग प्रदान करता है

समर्थित गो संस्करण

go1.16 और उससे ऊपर का उपयोग करना सुझावित है।

v1.10.0 से शुरू करके, Resty go modules का समर्थन करता है।

Resty संस्करण v2 और उससे ऊपर, यह पूरी तरह से go modules पैकेज पब्लिशिंग का समर्थन करता है। यह /vN सफ़िक्स इम्पोर्ट्स को समझने वाले गो संस्करण का उपयोग करना आवश्यक है:

  • 1.9.7+
  • 1.10.3+
  • 1.11+