RESTful API पूरे वेब पर डेटा ट्रांसफर के लिए लोकप्रिय आर्किटेक्चर हैं। RESTful API आमतौर पर HTTP का उपयोग करते हैं, जो उन्हें उन मामलों के लिए उपयुक्त बनाता है जहां स्टेटलेसनेस महत्वपूर्ण है।
किसी भी सर्वर-साइड भाषा की तरह, आप HTTP प्रोटोकॉल के साथ इंटरैक्ट कर सकते हैं और गो में HTTP अनुरोध कर सकते हैं।
Go. में RESTful API का उपभोग शुरू करना
एचटीटीपी पैकेज आपको गो में HTTP प्रोटोकॉल के साथ इंटरैक्ट करने के लिए आवश्यक अधिकांश कार्यक्षमता प्रदान करता है। इसमें HTTP अनुरोध करना शामिल है, और आपको इसकी आवश्यकता नहीं है बाहरी निर्भरता, जैसे जिन या डेटाबेस.
आप का उपयोग कर सकते हैं एचटीटीपी एपीआई का उपभोग करने और पृष्ठों को लाने के लिए पैकेज Go. में वेब स्क्रैपिंग.
गो में HTTP अनुरोध करना शुरू करने के लिए इन पैकेजों को आयात करें।
आयात (
"बाइट्स"
"एन्कोडिंग/जेसन"
"एफएमटी"
"आईओ/आईओटिल"
"नेट/http"
)
आप का उपयोग करेंगे बाइट्स बाइट स्लाइस में हेरफेर करने के लिए पैकेज, जेसन अनुरोध डेटा प्रारूपित करने के लिए पैकेज, एफएमटी मानक आउटपुट को लिखने के लिए पैकेज, ioutil इनपुट और आउटपुट के लिए पैकेज, और एचटीटीपी अनुरोध भेजने के लिए पैकेज।
Go. में एक साधारण GET अनुरोध
ठेठ प्राप्त अनुरोध सर्वर से डेटा पढ़ता है और एपीआई की प्रकृति और विनिर्देश के आधार पर डेटा के लिए पैरामीटर प्रदान कर सकता है।
इस ट्यूटोरियल में, आप सीखेंगे कि httpbin के सरल अनुरोध और प्रतिक्रिया सेवा का उपयोग करके RESTful API का उपभोग कैसे करें।
गो के साथ HTTP अनुरोध करने का एक उदाहरण यहां दिया गया है:
यूआरएल: = "https://httpbin.org/get"
प्रतिक्रिया, त्रुटि: = http. प्राप्त करें (यूआरएल)
यदि गलती!= शून्य {
एफएमटी प्रिंटफ ("एपीआई अनुरोध% s से एक त्रुटि हुई", err. गलती())
} वरना {
// जारी है [1] ...
}
यूआरएल वेरिएबल वह समापन बिंदु है जिस पर आप अनुरोध भेज रहे हैं। प्राप्त विधि यूआरएल में लेती है, निष्पादित करती है प्राप्त अनुरोध करता है, और प्रतिक्रिया देता है, जिसमें इसके शीर्षलेख और निकाय शामिल हैं।
आप अपनी आवश्यकताओं के आधार पर अनुरोध से किसी भी त्रुटि को संभाल सकते हैं। यदि कोई त्रुटि नहीं है, तो आप उस जानकारी को निकालने के लिए आगे बढ़ सकते हैं जिसकी आपको आवश्यकता है प्राप्त अनुरोध।
} वरना {
//... [1] जारी रखा
प्रतिक्रियाडेटा, त्रुटि: = ioutil. सभी पढ़ें (प्रतिक्रिया। शरीर)
यदि गलती!= शून्य {
एफएमटी प्रिंटफ ("अनुरोध निकाय% s को पार्स करने में त्रुटि हुई", err. गलती())
} वरना {
// जारी है [2] ...
}
}
प्रतिक्रिया शरीर फ़ील्ड प्रतिक्रिया का शरीर रखती है। का उपयोग करते हुए सब पढ़ो की विधि ioutil पैकेज, आप प्रतिक्रिया निकाय को पढ़ सकते हैं और संभावित त्रुटियों को संभाल सकते हैं।
} वरना {
//... [2] जारी रखा
एफएमटी प्रिंट्लन(डोरी(प्रतिक्रिया डेटा))
}
वरना यदि रीड ऑपरेशन से कोई त्रुटि नहीं है, तो कथन प्रतिक्रिया निकाय को आपके कंसोल पर प्रिंट करता है।
यहाँ का परिणाम है प्राप्त httpbin के समापन बिंदु के लिए अनुरोध।
गो में एक साधारण पोस्ट अनुरोध
विशिष्ट POST अनुरोध सर्वर को डेटा पेलोड प्रदान करते हैं, और सर्वर ऑपरेशन के आधार पर एक प्रतिक्रिया देता है।
POST अनुरोध के हिस्से के रूप में सर्वर पर JSON पेलोड को एन्कोड करने के लिए यहां एक सरल संरचना है।
प्रकार JSON struct {
जानकारी डोरी
संदेश डोरी
}
JSON संरचना में है जानकारी तथा संदेश स्ट्रिंग फ़ील्ड, और आप अनुरोध के लिए एक स्ट्रक्चर इंस्टेंस प्रारंभ करेंगे।
यूआरएल: = "https://httpbin.org/post"
जेसन इंस्टेंस: = जेएसओएन {
जानकारी: "सफलता की उम्मीद",
संदेश: "अनुरोध चाहिए वापसी ",
}
यूआरएल वेरिएबल httpbin वेबसाइट से POST रिक्वेस्ट एंडपॉइंट को स्टोर करता है। जसन इंस्टेंस वेरिएबल JSON संरचना का एक उदाहरण है जिसका उपयोग आप संरचित डेटा को संग्रहीत और भेजने के लिए कर सकते हैं।
आप का उपयोग कर सकते हैं मार्शल से विधि जेसन अनुरोध के लिए JSON प्रारूपित करने के लिए पैकेज।
jsonData, त्रुटि: = json. मार्शल (jsonInstance)
यदि गलती!= शून्य {
एफएमटी Println ("JSON के साथ एक त्रुटि हुई", err. गलती())
} वरना {
// जारी है [1] ...
}
मार्शल विधि एक त्रुटि भी देता है जिसे आप संभाल सकते हैं। यदि JSON मार्शलिंग ऑपरेशन में कोई त्रुटि नहीं है, तो आप POST अनुरोध करने के लिए आगे बढ़ सकते हैं।
आप का उपयोग कर सकते हैं पद POST अनुरोध करने की विधि। पद विधि URL समापन बिंदु, अनुरोध की सामग्री प्रकार और पेलोड का एक बफर लेती है। यह प्रतिक्रिया और एक त्रुटि देता है।
} वरना {
//... जारी रखा [1]
प्रतिक्रिया, त्रुटि: = http. पोस्ट (यूआरएल, "एप्लिकेशन/जेसन", बाइट्स. न्यूबफर (jsonData))
यदि गलती!= शून्य {
एफएमटी Println ("अनुरोध के साथ एक त्रुटि हुई", err. गलती())
} वरना {
// जारी है [2] ...
}
}
फिर से, आप का उपयोग करके प्रतिक्रिया निकाय को पढ़ सकते हैं सब पढ़ो की विधि ioutil पैकेट:
} वरना {
//... जारी रखा [2]
डेटा, त्रुटि: = ioutil. सभी पढ़ें (प्रतिक्रिया। शरीर)
यदि गलती!= शून्य {
एफएमटी Println ("अनुरोध के मुख्य भाग को पढ़ने में त्रुटि हुई", err. गलती())
} वरना {
एफएमटी प्रिंट्लन(डोरी(जानकारी))
}
}
प्रिंट्लन कथन आपके कंसोल पर HTTP अनुरोध के परिणाम को आउटपुट करता है।
के रूप में httpbin प्रलेखन निर्दिष्ट करता है, यह POST समापन बिंदु आपके द्वारा भेजे गए अनुरोध डेटा को लौटाता है।
गो में वेब ऐप्स बनाना आसान है
आप निर्भरता के बिना गो में विभिन्न कार्यक्षमता के साथ वेब एप्लिकेशन बना सकते हैं।
एचटीटीपी पैकेज में वे कार्य हैं जिनकी आपको अपने अधिकांश कार्यों के लिए आवश्यकता होगी। आप इस पैकेज का उपयोग दूसरों के साथ कर सकते हैं जैसे जेसन JSON संचालन के लिए पैकेज, संदर्भ सिग्नलिंग के लिए पैकेज, और टेम्प्लेटिंग के लिए टेम्प्लेट पैकेज। मानक पुस्तकालय में कई अन्य पैकेज हैं।