API संस्करण-निर्धारण और पिछली संगतता
संस्करण-निर्धारण रणनीतियों और protobuf संगतता नियमों का उपयोग करके अनेक टीमों में gRPC माइक्रोसर्विस API को सुरक्षित रूप से विकसित कीजिए, ताकि पुराने क्लाइंट कभी न टूटें।
API संस्करण-निर्धारण और पिछली संगतता, CoddyKit पर gRPC और उच्च-प्रदर्शन वाले एपीआई का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह gRPC और उच्च-प्रदर्शन वाले एपीआई सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। gRPC और उच्च-प्रदर्शन वाले एपीआई पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
संस्करण निर्धारण की चुनौती
माइक्रोसर्विस परिवेश में दर्जनों क्लाइंट किसी सेवा पर निर्भर होते हैं। आप उन सभी को एक साथ फिर से परिनियोजित नहीं कर सकते, इसलिए मौजूदा कॉल करने वालों को बिना तोड़े एपीआई बदलना आवश्यक है।
Protobuf में वायर संगतता
Protobuf सहनशील है: अज्ञात फ़ील्ड अनदेखे कर दिए जाते हैं और अनुपस्थित फ़ील्ड डिफ़ॉल्ट मान लेते हैं। इससे जोड़ात्मक बदलाव डिज़ाइन के अनुसार सुरक्षित रहते हैं।
सुरक्षित बनाम तोड़ने वाले बदलाव
सुरक्षित: फ़ील्ड, विधियाँ और एनम मान जोड़ना। तोड़ने वाले: फ़ील्ड हटाना/नाम बदलना, फ़ील्ड प्रकार बदलना, टैग संख्याओं का पुनः उपयोग करना और विधि हस्ताक्षर बदलना।
टैग संख्याओं का कभी पुनः उपयोग न करें
फ़ील्ड की टैग संख्याएँ वायर पर फ़ील्ड की पहचान करती हैं। हटाई गई संख्या का पुनः उपयोग पुराने डेटा को बिगाड़ देता है। संख्या को सुरक्षित रखने के लिए हटाए गए फ़ील्ड को reserved चिह्नित करें।
message User {
reserved 3, 5;
reserved 'old_name';
}पैकेज-आधारित संस्करण निर्धारण
वास्तविक रूप से तोड़ने वाले बदलावों के लिए पैकेज का संस्करण बदलें। पुराने और नए पैकेज साथ-साथ रहें, ताकि क्लाइंट अपनी गति से स्थानांतरित हो सकें।
package myapp.orders.v1;
// later, breaking change:
package myapp.orders.v2;v1 और v2 को साथ चलाना
सर्वर सेवा के दोनों संस्करण पंजीकृत करता है। नए क्लाइंट v2 को कॉल करते हैं; पुराने क्लाइंट अपग्रेड होने तक v1 का उपयोग करते रहते हैं।
ordersv1.RegisterOrdersServer(s, &v1impl{})
ordersv2.RegisterOrdersServer(s, &v2impl{})फ़ील्ड और विधियों को अप्रचलित करना
हटाने से पहले कॉल करने वालों को चेतावनी देने के लिए आइटम को अप्रचलित चिह्नित करें, ताकि उन्हें स्थानांतरण के लिए समय मिल सके।
string legacy_id = 2 [deprecated = true];एनम का विकास
एनम मान 0 को हमेशा UNSPECIFIED के रूप में सुरक्षित रखें। नए मान अंत में जोड़ें; proto3 में पुराने क्लाइंट अज्ञात मानों को सुरक्षित रूप से अपने डिफ़ॉल्ट पर मैप कर लेते हैं।
enum Status {
STATUS_UNSPECIFIED = 0;
ACTIVE = 1;
ARCHIVED = 2;
}स्वचालित संगतता जाँच
Buf जैसे उपकरण CI में प्रोटो बदलावों की जाँच करते हैं और मर्ज से पहले तोड़ने वाले संपादनों को अस्वीकार कर देते हैं। इससे टीमों के बीच संगतता अपने-आप लागू होती है।
buf breaking --against '.git#branch=main'स्कीमा रजिस्ट्री
एक केंद्रीय रजिस्ट्री (जैसे Buf Schema Registry) संस्करणित प्रोटो संग्रहीत करती है, ताकि हर टीम सत्य के एक ही स्रोत का उपयोग करे और एक जैसे स्टब बनाए।
स्थानांतरण रणनीति
एक साफ़ स्थानांतरण इस प्रकार है: v1 के साथ v2 जोड़ें, क्लाइंट को धीरे-धीरे स्थानांतरित करें, v1 के उपयोग पर नज़र रखें और ट्रैफ़िक शून्य होने पर ही v1 को हटाएँ।
त्वरित जाँच
संस्करण निर्धारण संबंधी अपने ज्ञान की जाँच करें।
पुनरावलोकन
आपने एपीआई संस्करण निर्धारण और संगतता के बारे में सीखा:
- जोड़ात्मक बदलाव वायर के लिए सुरक्षित होते हैं; हटाना, नाम बदलना या प्रकार बदलना इन्हें तोड़ देता है
- टैग संख्याओं का कभी पुनः उपयोग न करें — उन्हें
reservedचिह्नित करें - तोड़ने वाले बदलावों के लिए पैकेज के संस्करण (v1/v2) बनाएँ और दोनों चलाएँ
- एनम 0 को UNSPECIFIED के रूप में सुरक्षित रखें; हटाने से पहले अप्रचलित करें
- Buf और स्कीमा रजिस्ट्री से संगतता लागू करें
एआई शिक्षक के साथ gRPC और उच्च-प्रदर्शन वाले एपीआई सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “API संस्करण-निर्धारण और पिछली संगतता” पाठ निःशुल्क है?
हाँ—“API संस्करण-निर्धारण और पिछली संगतता” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और gRPC और उच्च-प्रदर्शन वाले एपीआई पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। gRPC और उच्च-प्रदर्शन वाले एपीआई पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“API संस्करण-निर्धारण और पिछली संगतता” में मैं क्या सीखूँगा?
संस्करण-निर्धारण रणनीतियों और protobuf संगतता नियमों का उपयोग करके अनेक टीमों में gRPC माइक्रोसर्विस API को सुरक्षित रूप से विकसित कीजिए, ताकि पुराने क्लाइंट कभी न टूटें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ gRPC और उच्च-प्रदर्शन वाले एपीआई का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या gRPC और उच्च-प्रदर्शन वाले एपीआई शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर gRPC और उच्च-प्रदर्शन वाले एपीआई शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“API संस्करण-निर्धारण और पिछली संगतता” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस gRPC और उच्च-प्रदर्शन वाले एपीआई पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर gRPC और उच्च-प्रदर्शन वाले एपीआई पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- gRPC माइक्रोसर्विस का डिज़ाइन
- इवेंट-आधारित gRPC आर्किटेक्चर
- विभिन्न भाषाओं के बीच अंतर-संचालनीयता
- API संस्करण-निर्धारण और पिछली संगतता