गो रेस्टी
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+