सॉफ्टवेयर के बारे में मुझे जो पसंद है उसमें एपीआई विकास एक बड़ा हिस्सा है। चाहे वह एकीकरण का निर्माण करना हो या वियुग्मित वेब अनुप्रयोगों के लिए एपीआई तैयार करना हो, यह आमतौर पर सिर्फ मैं और कोड होता है।
अधिकांश समय, मैं एकल एपीआई डेवलपर के रूप में काम करता हूं। अकेले जाने के अपने फायदे हैं: त्वरित निर्णय और पूर्ण नियंत्रण। लेकिन यह दोधारी तलवार है क्योंकि सबकुछ मेरे दिमाग में रखने से हैंडऑफ़ और प्रतिनिधिमंडल मुश्किल हो जाता है। और अकेले जाने से उन परियोजनाओं का आकार और जटिलता सीमित हो जाती है जिन पर मैं काम कर सकता हूँ। आख़िरकार, मैं तो बस एक ही व्यक्ति हूं।
एपीआई कार्य के लिए पोस्टमैन मेरा प्राथमिक उपकरण है - अनुरोध भेजना, वातावरण प्रबंधित करना और परीक्षण चलाना। मैं अपने एकल वर्कफ़्लो से परिचित हूँ। लेकिन मुझे आश्चर्य होने लगा है: टीम के माहौल में, पोस्टमैन और क्या पेशकश कर सकता है? यह सहयोग को कैसे बढ़ा सकता है और विकास प्रक्रिया को सुव्यवस्थित कर सकता है?
इन सवालों का पता लगाने के लिए, मैंने एक उदाहरण एपीआई पर काम करना शुरू किया, जिसे मैं "एक्स निहिलो" कहता हूं।
उदाहरण एपीआई: एक्स निहिलो
एक्स निहिलो आपके द्वारा संग्रहीत या भेजे गए मापदंडों के आधार पर 280-वर्ण के ट्वीट बनाने में आपकी सहायता करता है। आप एक विषय, एक लक्ष्य, लेने के लहजे का विवरण और दर्शकों का विवरण प्रदान करते हैं। पर्दे के पीछे, एपीआई टेक्स्ट पूरा करने के लिए ओपनएआई के एपीआई को एक अनुरोध भेजेगा, जो ट्वीट तैयार करने में सहायता करेगा।
इसके अलावा, आप टोन और ऑडियंस के लिए उपयोग की जाने वाली स्ट्रिंग्स को सहेज सकते हैं और फिर बाद के ट्वीट अनुरोधों में उनका पुन: उपयोग कर सकते हैं।
आइए मेरे मूल एपीआई विकास वर्कफ़्लो पर चलें।
इसे अकेले करना: मेरा एकल कार्यप्रवाह
मेरे वर्कफ़्लो में पहला कदम एपीआई डिज़ाइन करना और ओपनएपीआई स्पेक लिखना है। पोस्टमैन में, मैंने एक नई एपीआई बनाई, और फिर मैंने एक नई एपीआई परिभाषा शुरू की।
कुछ सोचने के बाद (और चैटजीपीटी के साथ सीधे काम करने के बाद, जो मेरे विवरण के आधार पर प्रारंभिक ओपनएपीआई स्पेक उत्पन्न करने के लिए बहुत अच्छा था), मैंने अपना स्पेक लिखा था:
अपनी OpenAPI युक्ति के साथ, मैं सड़क के एक दोराहे पर आ गया। क्या मुझे यह दिखाने के लिए एक मॉक सर्वर और कुछ उदाहरण अनुरोध और प्रतिक्रियाएं स्थापित करनी चाहिए कि इस एपीआई के साथ इंटरैक्ट करना कैसा दिखेगा? या क्या मुझे कार्यान्वयन कोड लिखना शुरू करना चाहिए?
एक एकल डेवलपर के रूप में, मैं किसी भी समय केवल एक एपीआई निर्माता या एपीआई उपभोक्ता ही हो सकता हूं। इसलिए मैंने फैसला किया: मॉक बनाने की कोई जरूरत नहीं - मेरे अंदर के उपभोक्ता को इंतजार करना होगा। आइए कुछ कोड लिखें!
कुछ ही क्षणों बाद…
एक्सप्रेस के साथ Node.js का उपयोग करके और PostgreSQL डेटाबेस से बात करके, मैंने अपना मूल एपीआई लागू किया था। यहां उन सभी चीज़ों का सारांश दिया गया है जिन्हें बनाने के लिए मुझे आवश्यकता थी:
-
POST /signin
एकusername
औरpassword
लेता है, डेटाबेस में रिकॉर्ड के विरुद्ध प्रमाणित करता है, और फिर एक हस्ताक्षरित JWT लौटाता है, जिसका उपयोग बाद के सभी अनुरोधों में किया जा सकता है। -
POST /generateTweet
एक 280-वर्ण (अधिकतम) ट्वीट उत्पन्न करता है। इसमें एकtopic
(स्ट्रिंग) और एकgoal
(स्ट्रिंग) लगता है। यह या तो एकtone
(स्ट्रिंग) या एकtoneId
(संग्रहीत टोन की पूर्णांक आईडी) के साथ-साथ एकaudience
(स्ट्रिंग) या एकaudienceId
(संग्रहीत ऑडियंस की पूर्णांक आईडी) भी लेता है। जब भीtone
और/याaudience
स्ट्रिंग प्रदान की जाती है, और एपीआई इन्हें डेटाबेस में सहेज लेगा। -
GET /tones
टोन आईडी और संबंधित स्ट्रिंग्स की एक सूची लौटाता है।GET /audiences
पुन: प्रयोज्य ऑडियंस स्ट्रिंग्स के लिए भी ऐसा ही करता है। -
DELETE /tones
एक टोन आईडी लेता है और उस टोन रिकॉर्ड को हटा देता है।DELETE /audiences
ऑडियंस रिकॉर्ड के लिए भी ऐसा ही करता है।
प्रारंभिक कार्यान्वयन पूरा होने के बाद, कुछ अनुरोधों को चलाने के लिए पोस्टमैन के पास वापस जाने का समय आ गया था।
वेरिएबल्स के साथ एक वातावरण बनाएं।
सबसे पहले, मैंने "टेस्ट" नामक एक नया वातावरण बनाया। मैंने अपने root_url
वैध username
और password
के साथ संग्रहीत करने के लिए वेरिएबल जोड़े।
एक संग्रह और एक अनुरोध बनाएं
फिर, मैंने एक नया संग्रह बनाया और अपना पहला अनुरोध जोड़ा: प्रमाणीकरण का प्रयास करने के लिए /signin
पर एक POST
अनुरोध।
टर्मिनल विंडो में चल रहे मेरे एपीआई सर्वर के साथ, मैंने अपना पहला अनुरोध भेजा।
सफलता! मुझे मेरा टोकन मिल गया, जिसकी मुझे भविष्य में किसी भी अनुरोध में आवश्यकता होगी।
मैंने एक नया अनुरोध बनाया, इस बार एक ट्वीट उत्पन्न करने के लिए।
मैंने "बेयरर टोकन" का उपयोग करने के लिए प्राधिकरण को सेट करना सुनिश्चित किया और मैंने वह टोकन प्रदान किया जो मुझे पिछले अनुरोध से प्राप्त हुआ था।
यहाँ प्रतिक्रिया है:
यह काम करता है!
एकल दृष्टिकोण का सारांश
यह मेरे एकल कार्यप्रवाह की एक बुनियादी झलक है। निःसंदेह, मैं रास्ते में कुछ अन्य चीजें भी करूँगा:
-
/signin
अनुरोध करने के लिए एक पूर्व-अनुरोध स्क्रिप्ट लिखें और फिर प्रतिक्रिया में टोकन के आधार पर एक पर्यावरण चर सेट करें। - OpenAPI विनिर्देश में अन्य सभी समापन बिंदुओं के लिए अनुरोध बनाएं।
- प्रत्येक समापन बिंदु के लिए परीक्षण लिखें, यह सुनिश्चित करते हुए कि मेरे किनारे के मामलों को कवर किया जाए।
अगर मैं अकेले काम कर रहा हूं, तो यह बुनियादी वर्कफ़्लो मुझे फिनिश लाइन के काफी करीब ले जाता है। हालाँकि यह ठीक है, मुझे पता है कि मैं शायद केवल पोस्टमैन में उपलब्ध सुविधाओं की सतह को खंगाल रहा हूँ। और मुझे पता है कि अगर मैं किसी टीम पर काम कर रहा होता तो मुझे पोस्टमैन से और भी बहुत कुछ की आवश्यकता होती।
अहा क्षण: टीमों के लिए पोस्टमैन पर विचार क्यों करें?
यदि मैं अब एक्स निहिलो के लिए एकल एपीआई डेवलपर नहीं बन सका तो क्या होगा? ऐसा कई कारणों से हो सकता है:
- एक्स निहिलो आकार और जटिलता में बढ़ता है, और एक एकल एपीआई डेवलपर अब इसका समर्थन करने के लिए पर्याप्त नहीं है।
- एक्स निहिलो एक बड़े एपीआई प्रोजेक्ट का केवल एक छोटा सा हिस्सा है जिसमें कई एपीआई डेवलपर्स या शायद कई एपीआई टीमें शामिल हैं।
ग्राहकों के लिए मेरे सभी एपीआई प्रोजेक्ट छोटे नहीं होंगे जिन्हें मैं स्वयं बना सकूं। कभी-कभी, मुझे एपीआई बनाने वाली टीम का हिस्सा बनने की आवश्यकता होगी। मुझे एपीआई टीम का नेतृत्व करने की भी आवश्यकता हो सकती है।
जब ऐसा होगा, तो मुझे अपनी एकल मानसिकता को पीछे छोड़ना होगा और पोस्टमैन में काम करने का अपना एकल तरीका छोड़ना होगा। इसने मुझे पोस्टमैन की टीम-संबंधित विशेषताओं पर गौर करने के लिए प्रेरित किया।
पोस्टमैन की टीम (उद्यम) की विशेषताओं की खोज
पोस्टमैन के पास एक निःशुल्क स्तर है, और यह कुछ सीमित सहयोग सुविधाएँ प्रदान करता है, जो कि यदि आपकी एक छोटी टीम है (अर्थात् तीन से अधिक डेवलपर्स नहीं) तो पर्याप्त हो सकती है। पोस्टमैन के पास एंटरप्राइज एसेंशियल टियर के हिस्से के रूप में अतिरिक्त सुविधाएं हैं। ये बड़े संगठनों में एपीआई टीमों के लिए बहुत अच्छे हैं जो बोर्ड भर में पोस्टमैन का उपयोग करते हैं।
कार्यस्थल साझाकरण
एक कार्यक्षेत्र आपकी टीमों को कई एपीआई परियोजनाओं पर सहयोग करने देता है। यह बहुत अच्छा है यदि आपके पास अलग-अलग एपीआई पर काम करने वाली अलग-अलग टीमें हैं, लेकिन वे एपीआई एक-दूसरे के साथ बातचीत करते हैं (जो आम तौर पर बड़े सॉफ्टवेयर संगठनों में होता है)।
वास्तविक समय सहयोग को सक्षम करने के लिए कार्यस्थान उत्कृष्ट हैं। टीम के सदस्य एपीआई दस्तावेज़ को संपादित कर सकते हैं, अनुरोध तैयार करने या परीक्षण लिखने पर एक साथ काम कर सकते हैं, और एक मॉक सर्वर बना सकते हैं जिसका उपयोग पूरी टीम कर सकती है। जैसे ही संपादन किए जाते हैं, वे वास्तविक समय में पूरी टीम के साथ समन्वयित हो जाते हैं।
संस्करण नियंत्रण
हालाँकि, एक एकल एपीआई डेवलपर के रूप में, मुझे अपने कोड के संस्करण नियंत्रण की परवाह थी, लेकिन मुझे अपने पोस्टमैन संग्रह या वातावरण के संस्करण नियंत्रण की ज्यादा परवाह नहीं थी। यदि मैं कुछ बदलता हूं (किसी अनुरोध को संशोधित करता हूं, किसी परीक्षण को अद्यतन करता हूं, किसी पर्यावरण चर को हटाता हूं), तो केवल मैं ही प्रभावित होता हूं। कोई बड़ी बात नहीं।
जब आप किसी टीम में काम करते हैं, तो आप निश्चित रूप से जानना चाहेंगे कि चीजें कब बदलती हैं। और कभी-कभी आपको परिवर्तनों को वापस लेने की आवश्यकता होती है। सौभाग्य से, पोस्टमैन एंटरप्राइज का उपयोग करने वाली टीमों के लिए, पोस्टमैन आपको संग्रह, कार्यस्थान और एपीआई के लिए चेंजलॉग तक पहुंच प्रदान करता है। आप संग्रहों को समय के पहले बिंदुओं पर वापस ला सकते हैं। एक टीम में एपीआई डेवलपर के रूप में, आपको इसकी आवश्यकता होगी। अधिकांश समय, ऐसा इसलिए होता है क्योंकि बॉब ने संग्रह को ख़राब कर दिया है। हालाँकि, कभी-कभी आप बॉब होते हैं।
भूमिका-आधारित पहुंच और उपयोगकर्ता संगठन
पोस्टमैन कार्यक्षेत्र में सभी के पास समान स्तर की अनुमतियाँ नहीं होनी चाहिए। टीम के कुछ सदस्य परीक्षक हैं, और उन्हें केवल अनुरोध भेजने और परीक्षण चलाने की क्षमता की आवश्यकता है - लेकिन उन्हें संशोधित करने की नहीं। अन्य ऐसे डिज़ाइनर हो सकते हैं जिन्हें केवल एपीआई परिभाषाओं को संशोधित करने की अनुमति है।
पोस्टमैन में, आप टीम के सदस्यों को भूमिकाएँ सौंप सकते हैं। यह उस प्रकार की पहुंच और अनुमति के स्तर को प्रभावित करता है जो टीम या कार्यक्षेत्र में प्रत्येक टीम सदस्य के पास होती है।
टीमों के पास निजी कार्यस्थान भी हो सकते हैं, जिससे टीम के बाहर के अन्य लोगों की पहुंच प्रतिबंधित हो सकती है।
मैंने यह भी देखा कि पोस्टमैन एंटरप्राइज़ "डोमेन कैप्चर" का समर्थन करता है। इसका मूल रूप से मतलब है कि आप (उदाहरण के लिए) mycompany.biz
डोमेन से सभी को एक्सेस देकर अपने संगठन के सभी उपयोगकर्ताओं को सेट कर सकते हैं।
इनलाइन टिप्पणियाँ और चर्चाएँ
पोस्टमैन के पास एक सहयोग सुविधा है, जो केवल उसके एंटरप्राइज़ एसेंशियल्स पर ही नहीं, बल्कि उसकी सभी योजनाओं पर उपलब्ध है। यह टीम के सदस्यों के लिए संग्रह में टिप्पणियाँ जोड़ने की क्षमता है (फ़ोल्डरों, अनुरोधों, उदाहरणों या पुल अनुरोधों पर)। पोस्टमैन में सीधे टिप्पणी और चर्चा करने में सक्षम होना टीम एपीआई विकास के लिए बहुत बड़ी बात है। चूंकि आपकी टीम का अधिकांश एपीआई विकास कार्य पोस्टमैन में होगा, इसलिए आपकी चर्चा वहां (गिटहब या किसी अन्य बाहरी सेवा के बजाय) करना उचित होगा।
टीम एपीआई विकास: जीत के लिए डाकिया
जब भी मैं किसी टीम में शामिल होता हूं, तो मैं वे उपकरण लाता हूं जिनका उपयोग करना मुझे पसंद है, लेकिन मैं वास्तव में उन्हें अपने टीम साथियों पर नहीं थोपता। मुझे लगता है कि उनके पास अपने स्वयं के उपकरण हैं। तो, प्रत्येक का अपना। लेकिन मुझे लगता है कि अधिकांश एपीआई डेवलपर्स के टूलबेल्ट में पोस्टमैन होता है। यह शर्म की बात होगी यदि एक टीम के कई एपीआई डेवलपर्स व्यक्तिगत रूप से, एकल मानसिकता के साथ, और इनमें से कुछ टीम सुविधाओं का लाभ उठाए बिना पोस्टमैन का उपयोग करते हैं। यदि वे पोस्टमैन एंटरप्राइज़ सुविधाओं का लाभ उठाते, तो उन्हें मिलता...
बढ़ी हुई कार्यक्षमता
एक साझा कार्यक्षेत्र में, आपको साझा एपीआई परिभाषा के साथ शुरुआत करनी होती है। जब भी कोई टीम सदस्य परिभाषा (या दस्तावेज़ीकरण या परीक्षण या वातावरण) को संपादित करता है, तो संपादन सिंक हो जाते हैं, और हर किसी के पास नवीनतम और महानतम होता है।
हर कोई एक संग्रह में अनुरोधों के एक ही सेट पर काम करता है, और हर किसी के पास उपयोग किए जाने वाले सभी परीक्षणों तक पहुंच होती है। ये सभी सुविधाएं एक टीम की दक्षता में सुधार करेंगी, जिसके परिणामस्वरूप उनकी विकास गति आसमान छू जाएगी।
कम गलतफहमियाँ
जब हर कोई सत्य के एक ही स्रोत (आपके कार्यक्षेत्र) से काम कर रहा है, और वे विकास के लिए उपयोग किए जा रहे टूल के भीतर टिप्पणी कर सकते हैं और बातचीत कर सकते हैं, तो इससे गलतफहमियां कम होंगी। आपकी टीम इस भ्रम में समय बर्बाद नहीं करेगी कि उस समापन बिंदु को क्वेरी पैरामीटर लेना चाहिए था या पथ पैरामीटर। सब कुछ स्पष्ट हो जायेगा.
कुंजी ले जाएं
मुझे नहीं पता था कि पोस्टमैन टीमों और उद्यमों के लिए था। अब जब मुझे पता चल गया है, तो मेरी बड़ी बात यह है: टीम के खिलाड़ी ऐसे उपकरणों का उपयोग करते हैं जो टीम के लिए अच्छे होते हैं।
जब मैं एक एकल एपीआई डेवलपर था तो पोस्टमैन मेरे लिए बहुत अच्छा रहा। सौभाग्य से, इसमें ऐसी विशेषताएं भी हैं जो एपीआई डेव टीम में होने पर मेरे लिए इसे बहुत अच्छा बनाती हैं। मेरे लिए, यह संग्रह, चैंजलॉग और संस्करण नियंत्रण के भीतर संपादनों का वास्तविक समय सिंक है, और पहुंच के लिए बारीक अनुमतियां हैं। अब, मैं बड़ी टीमों के साथ बड़ी एपीआई परियोजनाओं को लेने के लिए उत्साहित हूं।
हैप्पी कोडिंग!
यहाँ भी प्रकाशित किया गया है.