Go . के साथ RESTful API का उपभोग करना

Go . के साथ RESTful API का उपभोग करना

RESTful API पूरे वेब पर डेटा ट्रांसफर के लिए लोकप्रिय आर्किटेक्चर हैं। RESTful API आमतौर पर HTTP का उपयोग करते हैं, जो उन्हें उन मामलों के लिए उपयुक्त बनाता है जहां स्टेटलेसनेस महत्वपूर्ण है।





किसी भी सर्वर-साइड भाषा की तरह, आप HTTP प्रोटोकॉल के साथ इंटरैक्ट कर सकते हैं और गो में HTTP अनुरोध कर सकते हैं।





Go . में RESTful API का उपभोग शुरू करना

एचटीटीपी पैकेज आपको गो में HTTP प्रोटोकॉल के साथ इंटरैक्ट करने के लिए आवश्यक अधिकांश कार्यक्षमता प्रदान करता है। इसमें HTTP अनुरोध करना शामिल है, और आपको इसकी आवश्यकता नहीं है बाहरी निर्भरता, जैसे जिन या डेटाबेस .





दिन का मेकअप वीडियो

आप का उपयोग कर सकते हैं एचटीटीपी एपीआई का उपभोग करने और पृष्ठों को लाने के लिए पैकेज Go . में वेब स्क्रैपिंग .

गो में HTTP अनुरोध करना शुरू करने के लिए इन पैकेजों को आयात करें।



import ( 
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)

आप का उपयोग करेंगे बाइट्स बाइट स्लाइस में हेरफेर करने के लिए पैकेज, जेसन अनुरोध डेटा प्रारूपित करने के लिए पैकेज, एफएमटी मानक आउटपुट को लिखने के लिए पैकेज, ioutil इनपुट और आउटपुट के लिए पैकेज, और एचटीटीपी अनुरोध भेजने के लिए पैकेज।

टर्मिनल के साथ करने के लिए अच्छी चीजें

Go . में एक साधारण GET अनुरोध

ठेठ प्राप्त अनुरोध सर्वर से डेटा पढ़ता है और एपीआई की प्रकृति और विनिर्देश के आधार पर डेटा के लिए पैरामीटर प्रदान कर सकता है।





इस ट्यूटोरियल में, आप सीखेंगे कि httpbin के सरल अनुरोध और प्रतिक्रिया सेवा का उपयोग करके RESTful API का उपभोग कैसे करें।

गो के साथ HTTP अनुरोध करने का एक उदाहरण यहां दिया गया है:





url := "https://httpbin.org/get" 
response, err := http.Get(url)

if err != nil {
fmt.Printf("There was an error from the API request %s", err.Error())
} else {
// continues [1] ...
}

यूआरएल वेरिएबल वह समापन बिंदु है जिस पर आप अनुरोध भेज रहे हैं। प्राप्त विधि यूआरएल में लेती है, निष्पादित करती है प्राप्त अनुरोध करता है, और प्रतिक्रिया देता है, जिसमें इसके शीर्षलेख और निकाय शामिल हैं।

आप अपनी आवश्यकताओं के आधार पर अनुरोध से किसी भी त्रुटि को संभाल सकते हैं। यदि कोई त्रुटि नहीं है, तो आप उस जानकारी को निकालने के लिए आगे बढ़ सकते हैं जिसकी आपको आवश्यकता है प्राप्त अनुरोध।

} else { 
// ... [1] continued
responseData, err := ioutil.ReadAll(response.Body)

if err != nil {
fmt.Printf("There was an error from parsing the request body %s", err.Error())
} else {
// continues [2] ...
}
}

प्रतिक्रिया शरीर फ़ील्ड प्रतिक्रिया का शरीर रखती है। का उपयोग करते हुए सब पढ़ो की विधि ioutil पैकेज, आप प्रतिक्रिया निकाय को पढ़ सकते हैं और संभावित त्रुटियों को संभाल सकते हैं।

} else { 
// ... [2] continued
fmt.Println(string(responseData))
}

वरना यदि रीड ऑपरेशन से कोई त्रुटि नहीं है, तो कथन प्रतिक्रिया निकाय को आपके कंसोल पर प्रिंट करता है।

यहाँ का परिणाम है प्राप्त httpbin के समापन बिंदु के लिए अनुरोध।

  जीईटी अनुरोध से परिणाम

गो में एक साधारण पोस्ट अनुरोध

विशिष्ट POST अनुरोध सर्वर को डेटा पेलोड प्रदान करते हैं, और सर्वर ऑपरेशन के आधार पर एक प्रतिक्रिया देता है।

POST अनुरोध के हिस्से के रूप में सर्वर पर JSON पेलोड को एन्कोड करने के लिए यहां एक सरल संरचना है।

यूएसबी को आईएसओ कैसे माउंट करें
type JSON struct { 
info string
message string
}

JSON संरचना में है जानकारी तथा संदेश स्ट्रिंग फ़ील्ड, और आप अनुरोध के लिए एक स्ट्रक्चर इंस्टेंस प्रारंभ करेंगे।

प्रोग्राम को एक ड्राइव से दूसरे ड्राइव में कैसे ट्रांसफर करें
url := "https://httpbin.org/post" 

jsonInstance := JSON {
info: "expecting success",
message: "the request should return ",
}

यूआरएल वेरिएबल httpbin वेबसाइट से POST रिक्वेस्ट एंडपॉइंट को स्टोर करता है। जसन इंस्टेंस वेरिएबल JSON संरचना का एक उदाहरण है जिसका उपयोग आप संरचित डेटा को संग्रहीत और भेजने के लिए कर सकते हैं।

आप का उपयोग कर सकते हैं Marshal से विधि जेसन अनुरोध के लिए JSON प्रारूपित करने के लिए पैकेज।

FF0ED9650D2AC350A71C4CE143C449322296432

Marshal विधि एक त्रुटि भी देता है जिसे आप संभाल सकते हैं। यदि JSON मार्शलिंग ऑपरेशन में कोई त्रुटि नहीं है, तो आप POST अनुरोध करने के लिए आगे बढ़ सकते हैं।

आप का उपयोग कर सकते हैं पद POST अनुरोध करने की विधि। पद विधि URL समापन बिंदु, अनुरोध की सामग्री प्रकार और पेलोड का एक बफर लेती है। यह प्रतिक्रिया और एक त्रुटि देता है।

} else { 
// ... continued [1]
response, err := http.Post(url, "application/json", bytes.NewBuffer(jsonData))

if err != nil {
fmt.Println("there was an error with the request", err.Error())
} else {
// continues [2] ...
}
}

फिर से, आप का उपयोग करके प्रतिक्रिया निकाय को पढ़ सकते हैं सब पढ़ो की विधि ioutil पैकेट:

} else { 
// ... continued [2]
data, err := ioutil.ReadAll(response.Body)

if err != nil {
fmt.Println("there was an error reading the request body", err.Error())
} else {
fmt.Println(string(data))
}
}

प्रिंट्लन कथन आपके कंसोल पर HTTP अनुरोध के परिणाम को आउटपुट करता है।

के रूप में httpbin प्रलेखन निर्दिष्ट करता है, यह POST समापन बिंदु आपके द्वारा भेजे गए अनुरोध डेटा को लौटाता है।

  पोस्ट अनुरोध से परिणाम

गो में वेब ऐप्स बनाना आसान है

आप निर्भरता के बिना गो में विभिन्न कार्यक्षमता के साथ वेब एप्लिकेशन बना सकते हैं।

एचटीटीपी पैकेज में वे कार्य हैं जिनकी आपको अपने अधिकांश कार्यों के लिए आवश्यकता होगी। आप इस पैकेज का उपयोग दूसरों के साथ कर सकते हैं जैसे जेसन JSON संचालन के लिए पैकेज, संदर्भ सिग्नलिंग के लिए पैकेज, और टेम्प्लेटिंग के लिए टेम्प्लेट पैकेज। मानक पुस्तकालय में कई अन्य पैकेज हैं।