वेब रूटिंग निर्दिष्ट URL पथ पर संचालित होने वाले हैंडलर फ़ंक्शंस को HTTP अनुरोध निर्दिष्ट करने की एक तकनीक है। रूटिंग का उपयोग अक्सर सिंगल-पेज एप्लिकेशन (एसपीए) और एपीआई बनाने के लिए किया जाता है। राउटर में, कोड उपयोगकर्ता के अनुरोध के साथ आने वाली क्रियाओं के अनुक्रम को परिभाषित करता है।
गो मानक पुस्तकालय में रूटिंग सहित वेब एप्लिकेशन बनाने के लिए आपको अधिकांश कार्यक्षमता की आवश्यकता होगी। आप का उपयोग कर सकते हैं सर्वमक्स में टाइप करें नेट/http बुनियादी मार्ग से निपटने के लिए पैकेज। यदि आपको अधिक जटिल रूट हैंडलिंग की आवश्यकता है, तो चुनने के लिए बहुत सारे रूटिंग पैकेज हैं।
Go. में रूटिंग के साथ शुरुआत करना
गो का पारिस्थितिकी तंत्र उन रूटिंग पैकेजों का घर है जो अनावश्यक को अमूर्त करते हैं और वेब एप्लिकेशन और सेवाओं के निर्माण को आसान बनाते हैं।
कई गो वेब फ्रेमवर्क इनमें से कुछ रूटिंग पैकेजों को लागू करते हैं।
यहाँ के लिए एक सरल संरचना मॉडल है JSON प्रतिक्रिया आप इस ट्यूटोरियल में क्लाइंट को वापस करेंगे।
प्रकार जानकारी struct {
संदेश डोरी`जेसन: "संदेश" `
विवरण डोरी`जेसन: "विवरण" `
}
अधिकांश गो राउटर अभी भी नेट/http. का उपयोग करते हैं
प्रतिक्रिया लेखक तथा प्रार्थना हैंडलर फ़ंक्शंस में पैरामीटर के रूप में तरीके।समारोहनमस्ते(लेखक http. प्रतिक्रिया लेखक, अनुरोध *http. प्रार्थना) {
// हैंडलर फंक्शन बिजनेस लॉजिक यहाँ
}
इसके अलावा, आपको इसके साथ एक सर्वर शुरू करना होगा सुनो और सेवा करो अधिकांश पैकेजों में सर्वर को प्रारंभ करने की विधि।
त्रुटि: = http. सुनो और सर्व करें (":8000", राउटर)
यदि गलती!= शून्य {
वापसी
}
गो पारिस्थितिकी तंत्र में कुछ लोकप्रिय रूटिंग पैकेज यहां दिए गए हैं।
1. गोरिल्ला मक्स राउटर
गोरिल्ला मक्स पैकेज HTTP अनुरोधों के लिए अनुरोध राउटर और अनुरोध डिस्पैचर दोनों को लागू करता है। यह की तरह है एचटीटीपी। सर्वमक्स विधि लेकिन अतिरिक्त कार्यक्षमता के साथ।
गोरिल्ला मक्स राउटर इसे लागू करता है एचटीटीपी। हैंडलर इंटरफ़ेस और इसके तरीके संगत हैं सर्वमक्स तरीका। पैकेज कई यूआरएल योजनाओं को भी लागू करता है और आप समान मार्गों को परिभाषित करने के लिए राउटर को सब राउटर (नेस्टेड रूट) के रूप में उपयोग कर सकते हैं।
गोरिल्ला Mux पैकेज गोरिल्ला वेब टूलकिट का हिस्सा है। टूलकिट में कई समस्याओं को हल करने के लिए वेब-संबंधित पैकेज शामिल हैं उपयोगकर्ताओं को सत्र के साथ लॉग इन रखना कुकीज़ का उपयोग करके डेटा भंडारण के लिए।
गोरिल्ला मक्स पैकेज को स्थापित करने के लिए इस कमांड को अपने कार्यक्षेत्र के टर्मिनल में चलाएँ।
जाओ get -u github.com/gorilla/mux
यहां बताया गया है कि आप कैसे सेट अप कर सकते हैं प्राप्त एक हैंडलर फ़ंक्शन के लिए अनुरोध मार्ग जो गोरिल्ला मक्स पैकेज के साथ JSON प्रतिक्रिया को एन्कोड करता है।
आयात (
"एन्कोडिंग/जेसन"
"github.com/gorilla/mux"
"लकड़ी का लट्ठा"
"नेट/http"
)समारोहनमस्ते(लेखक http. प्रतिक्रिया लेखक, अनुरोध *http. प्रार्थना) {
प्रतिक्रिया: = जानकारी {
संदेश: "सफलता",
विवरण: "आपने क्लाइंट को सफलतापूर्वक लिखा है",
}त्रुटि: = json. न्यूएनकोडर (लेखक)। एनकोड (प्रतिक्रिया)
यदि गलती!= शून्य {
लकड़ी का लट्ठा। फैटॉलन (गलती)
}
}समारोहमुख्य() {
राउटर: = mux. न्यू राउटर ()
राउटर। हैंडलफंक ("/ हैलो", हैलो)। तरीके ("प्राप्त करें")
त्रुटि: = http. सुनो और सर्व करें (":8000", राउटर)
यदि गलती!= शून्य {
वापसी
}
}
नमस्ते हैंडलर फ़ंक्शन JSON का उपयोग करके संरचना को एन्कोड करता है एन्कोड की विधि न्यूएनकोडर संरचना
मुख्य फ़ंक्शन एक नया गोरिल्ला मक्स राउटर इंस्टेंस असाइन करता है रूटर चर। यह तब कॉल करता है हैंडलफनक हैंडलर फ़ंक्शन के लिए मार्ग को मैप करने की विधि। आप का उपयोग कर सकते हैं तरीकों अनुरोध प्रकार निर्दिष्ट करने की विधि।
2. ची राउटर
ची राउटर गो में HTTP-आधारित वेब सेवाओं के निर्माण के लिए एक हल्का, तेज़, कंपोज़ेबल राउटर है। ची राउटर के साथ संगत है एचटीटीपी पैकेज, और राउटर के लिए कोई बाहरी निर्भरता नहीं है।
कई राउटर के विपरीत, ची संदर्भ नियंत्रण प्रदान करता है संदर्भ समय पर अनुरोध से निपटने के लिए पैकेज।
इस आदेश के साथ अपने गो मॉड्यूल में ची राउटर स्थापित करें।
जाओ github.com/ प्राप्त करेंजाओ-ची ची
गोरिल्ला मक्स राउटर और ची राउटर के साथ रूटिंग बहुत समान है। यहां बताया गया है कि आप एक समान कैसे सेट कर सकते हैं प्राप्त अनुरोध जो JSON को प्रतिक्रिया के रूप में संरचना को एन्कोड करता है।
आयात (
"एन्कोडिंग/जेसन"
"github.com/जाओ-ची/ची/वी5"
"लकड़ी का लट्ठा"
"नेट/http"
)समारोहमुख्य() {
राउटर: = ची। न्यू राउटर ()
राउटर। प्राप्त करें ("/ हैलो", हैलो)
त्रुटि: = http. सुनो और सर्व करें (":8000", राउटर)यदि गलती!= शून्य {
वापसी
}
}समारोहनमस्ते(लेखक http. प्रतिक्रिया लेखक, अनुरोध *http. प्रार्थना) {
प्रतिक्रिया: = जानकारी {
संदेश: "सफलता",
विवरण: "आपने क्लाइंट को सफलतापूर्वक लिखा है",
}त्रुटि: = json. न्यूएनकोडर (लेखक)। एनकोड (प्रतिक्रिया)
यदि गलती!= शून्य {
लकड़ी का लट्ठा। फैटॉलन (गलती)
}
}
नमस्ते हैंडलर फ़ंक्शन इसके लिए हैंडलर फ़ंक्शन है प्राप्त अनुरोध।
में मुख्य समारोह, रूटर चर एक ची राउटर उदाहरण है। आप विधि नाम के साथ एक अनुरोध विधि निर्दिष्ट कर सकते हैं; इस मामले में, प्राप्त मार्ग और हैंडलर फ़ंक्शन पहचानकर्ता को पैरामीटर के रूप में लेता है।
3. एचटीपी राउटर पैकेज
एचटीपी राउटर पैकेज एक उच्च प्रदर्शन करने वाला, हल्का अनुरोध मल्टीप्लेक्सर है। यह की तुलना में अधिक कार्यक्षमता प्रदान करता है सर्वमक्स http पैकेज का कार्यान्वयन।
HttpRouter पैकेज में एक छोटा मेमोरी फ़ुटप्रिंट, उच्च प्रदर्शन और अच्छी मापनीयता है। यह गो पारिस्थितिकी तंत्र में सबसे पुराने और सबसे अधिक उपयोग किए जाने वाले राउटरों में से एक है, जिसे कई में लागू किया गया है लोकप्रिय गो चौखटे, समेत जिन लाइब्रेरी.
इस कमांड को आपकी वर्किंग डायरेक्टरी के टर्मिनल पर चलाने से HttpRouter पैकेज इंस्टाल हो जाएगा।
जाओ github.com/julienschmidt/httprouter प्राप्त करें
एचटीपी राउटर के साथ रूटिंग ची और गोरिल्ला मक्स राउटर से थोड़ा अलग है।
यहां बताया गया है कि आप HttpRouter पैकेज के साथ एक साधारण GET अनुरोध कैसे सेट कर सकते हैं।
आयात (
"एन्कोडिंग/जेसन"
"github.com/julienschmidt/httprouter"
"लकड़ी का लट्ठा"
"नेट/http"
)समारोहमुख्य() {
राउटर: = httprouter. नया()
राउटर। प्राप्त करें ("/ हैलो", हैलो)
त्रुटि: = http. सुनो और सर्व करें (":8000", राउटर)यदि गलती!= शून्य {
वापसी
}
}समारोहनमस्ते(लेखक http. प्रतिक्रिया लेखक, अनुरोध *http. अनुरोध, _ httprouter. पैराम्स) {
प्रतिक्रिया: = जानकारी {
संदेश: "सफलता",
विवरण: "आपने सफलतापूर्वक एपीआई समापन बिंदु मारा है",
}त्रुटि: = json. न्यूएनकोडर (लेखक)। एनकोड (प्रतिक्रिया)
यदि गलती!= शून्य {
लकड़ी का लट्ठा। फैटॉलन (गलती)
}
}
HttpRouter पैकेज के लिए हैंडलर फ़ंक्शंस में होना चाहिए पैरामीटर HTTP राउटर की विधि।
रूटर वेरिएबल HttpRouter का एक उदाहरण है। आप इसके साथ एक GET अनुरोध सेट कर सकते हैं प्राप्त विधि जो मार्ग और हैंडलर फ़ंक्शन पहचानकर्ता को लेती है।
4. पैट राउटर
थपथपाना एक सिनात्रा-शैली HTTP अनुरोध बहुसंकेतक है जो गो के नेट/http पैकेज के साथ काम करता है। पैट राउटर में रूटिंग के अलावा कोई अन्य कार्य नहीं है।
पैट राउटर को स्थापित करने के लिए इस कमांड को अपनी कार्यशील निर्देशिका में चलाएँ
जाओ github.com/bmizerany/pat. प्राप्त करें
पैट राउटर समान कार्यक्षमताओं को लागू करता है सर्वमक्स तरीका।
यहां बताया गया है कि आप इसके साथ अनुरोध रूटिंग को कैसे संभाल सकते हैं थपथपाना पैकेट।
आयात (
"एन्कोडिंग/जेसन"
"github.com/bmizerany/pat"
"लकड़ी का लट्ठा"
"नेट/http"
)समारोहनमस्ते(लेखक http. प्रतिक्रिया लेखक, अनुरोध *http. प्रार्थना) {
प्रतिक्रिया: = जानकारी {
संदेश: "सफलता",
विवरण: "आपने समापन बिंदु को सफलतापूर्वक मारा है",
}त्रुटि: = json. न्यूएनकोडर (लेखक)। एनकोड (प्रतिक्रिया)
यदि गलती!= शून्य {
लकड़ी का लट्ठा। फैटलन ("गलती")
}
}समारोहमुख्य() {
राउटर: = पैट. नया() // राउटर उदाहरण
राउटर। गेट ("/ हैलो", http. हैंडलरफंक (हैलो))
एचटीटीपी। हैंडल ("/", राउटर)
त्रुटि: = http. सुनो और सर्व करें (":12345", शून्य)
यदि गलती!= शून्य {
लकड़ी का लट्ठा। घातक ("सुनो और सेवा करें:", त्रुटि)
}
}
नया विधि राउटर उदाहरण देता है। आपको हैंडलर फ़ंक्शन को के साथ लपेटना होगा हैंडलरफनक तरीका। फिर आप का उपयोग कर सकते हैं सँभालना रूट पथ निर्दिष्ट करने और सर्वर शुरू करने से पहले राउटर इंस्टेंस को माउंट करने की विधि।
राउटर बनाना इतना मुश्किल नहीं है
इस आलेख के सभी राउटर नेट और एचटीटीपी पैकेज से कार्यक्षमता को लागू करते हैं। अपनी आवश्यकताओं के अनुरूप अतिरिक्त कार्यक्षमता के साथ राउटर को दोहराने का तरीका जानने के लिए आप सर्वमक्स विधि के दस्तावेज़ीकरण की जांच कर सकते हैं।
जिन और फाइबर जैसे ढांचे में नेट पैकेज या इसे लागू करने वाले बाहरी पैकेज से रूटिंग कार्यक्षमता शामिल है।