एपीआई या एप्लिकेशन प्रोग्रामिंग इंटरफेस उन कार्यों और नियमों को प्रस्तुत करता है जो विभिन्न अनुप्रयोगों के बीच बातचीत और संचार की अनुमति देते हैं। ये इंटरफेस एप्लिकेशन एकीकरण की सुविधा प्रदान करते हैं, डेवलपर्स को शक्तिशाली डिजिटल उत्पाद बनाने में सक्षम बनाते हैं।
एपीआई अनुरोधों और प्रतिक्रियाओं के माध्यम से अनुप्रयोगों के बीच मध्यस्थता करता है। उदाहरण के लिए, उपयोगकर्ता के मौजूदा ट्विटर खाते के माध्यम से एप्लिकेशन में पंजीकरण ट्विटर एपीआई के माध्यम से होता है जिसे डेवलपर्स ने ऐप में एकीकृत किया है। एपीआई अनुरोध और प्रतिक्रिया भेजने के लिए विभिन्न प्रोटोकॉल और आर्किटेक्चर का उपयोग करता है:
- XML-RPC — नेटवर्क के बीच कार्यों के आदान-प्रदान की अनुमति देता है। XML-RPC, क्लाइंट से सर्वर पर सूचना स्थानांतरित करने के लिए प्रतिक्रियाओं/अनुरोधों और HTTP प्रोटोकॉल का वर्णन करने के लिए XML का उपयोग करता है।
- JSON-RPC XML के समान एक हल्का RPC है। यहाँ प्रोटोकॉल JSON में एन्कोड किया गया है; यह सर्वर को अतुल्यकालिक प्रतिक्रियाओं के साथ कॉल प्राप्त करने की अनुमति देता है।
- SOAP — कंप्यूटर नेटवर्क में वेब सेवाओं को लागू करते समय संरचित सूचनाओं के आदान-प्रदान के लिए एक साधारण ऑब्जेक्ट एक्सेस प्रोटोकॉल। SOAP ऑपरेटिंग सिस्टम पर प्रमाणीकरण, प्राधिकरण और प्रक्रिया संचार के लिए XML का उपयोग करता है। यह ग्राहकों को वेब सेवाओं को कॉल करने और प्लेटफॉर्म और भाषा की परवाह किए बिना प्रतिक्रिया प्राप्त करने की अनुमति देता है।
- REST API (प्रतिनिधि राज्य हस्तांतरण) - क्लाइंट-सर्वर कार्यान्वयन का स्वतंत्र रूप से उपयोग करने वाली एक वास्तुशिल्प शैली। REST संचार के लिए HTTP प्रोटोकॉल का उपयोग करता है।
इस पोस्ट में, हम REST API पर ध्यान केंद्रित करते हैं, इसे परिभाषित करते हैं, और विश्लेषण करते हैं कि यह अन्य API से कैसे भिन्न है।
REST API को परिभाषित करना
HTTP प्रोटोकॉल के माध्यम से एपीआई डिजाइन करने के लिए आरईएसटी एक वास्तुशिल्प शैली है। इसका मुख्य लाभ इसकी महान लचीलापन है।
डेवलपर्स आरईएसटी एपीआई का उपयोग करते हैं जहां किसी वेब एप्लिकेशन या साइट के उपयोगकर्ता को सीधे सर्वर से डेटा प्रदान करने की आवश्यकता होती है। आरईएसटी एपीआई के मुख्य घटक:
- ग्राहक - एक क्लाइंट या प्रोग्राम जो उपयोगकर्ता के पक्ष में (उसके डिवाइस पर) संचार शुरू करता है।
- सर्वर - अपने कार्यों और डेटा तक पहुंच के रूप में एपीआई का उपयोग करने वाला सर्वर।
- संसाधन — कोई भी सामग्री (वीडियो, टेक्स्ट, चित्र) सर्वर क्लाइंट को प्रेषित करता है।
रेस्ट एपीआई कैसे काम करता है
REST API HTTP अनुरोधों के माध्यम से संचार करता है, निम्नलिखित कार्यों को पूरा करता है - डेटा बनाना, पढ़ना, अपडेट करना और हटाना। उन्हें सीआरयूडी संचालन के रूप में भी जाना जाता है। REST अनुरोधित संसाधनों के बारे में जानकारी प्रदान करता है और संसाधन के साथ क्या करना है इसका वर्णन करने के लिए चार विधियों का उपयोग करता है:
पोस्ट - एक संसाधन बनाना;
प्राप्त करें - एक संसाधन प्राप्त करना;
PUT - संसाधन को अद्यतन करना;
DELETE - किसी संसाधन को हटाना।
संसाधन
आरईएसटी एपीआई में एक संसाधन एक महत्वपूर्ण अवधारणा है, एक सूचना अमूर्तता। यह कोई भी जानकारी हो सकती है: दस्तावेज़, छवि, अस्थायी सेवा।
किसी भी समय संसाधन की स्थिति को संसाधन प्रतिनिधित्व के रूप में जाना जाता है जिसमें डेटा, डेटा का वर्णन करने वाला मेटाडेटा और हाइपरमीडिया लिंक होते हैं जो ग्राहकों को अगले राज्य में जाने में मदद करते हैं।
जानकारी क्लाइंट को विभिन्न स्वरूपों में वितरित की जा सकती है: JSON, HTML, XLT, Python, या सादा पाठ। सबसे लोकप्रिय और इस्तेमाल किया जाने वाला JSON है क्योंकि यह मानव और मशीन-पठनीय और भाषा-अज्ञेयवादी है।
किसी संसाधन तक पहुँचने के लिए, क्लाइंट को एक अनुरोध करने की आवश्यकता होती है। इसे प्राप्त करने के बाद, सर्वर संसाधन के बारे में एन्कोडेड डेटा के साथ प्रतिक्रिया उत्पन्न करेगा।
अनुरोध संरचना में चार मुख्य घटक शामिल हैं: HTTP विधि (CRUD जिसका हमने पहले उल्लेख किया था), समापन बिंदु, हेडर और बॉडी।
HTTP विधि बताती है कि संसाधन के साथ क्या किया जाना चाहिए। ऊपर, हमने चार उपलब्ध विधियों का उल्लेख किया है: पोस्ट करें, प्राप्त करें, पुट करें, हटाएं।
समापन बिंदु में एक URI - यूनिफ़ॉर्म रिसोर्स आइडेंटिफ़ायर होता है, जो इंगित करता है कि संसाधन कैसे और कहाँ पाया जा सकता है। एक यूआरएल या यूनिफ़ॉर्म रिसोर्स लोकेशन सबसे आम यूआरआई प्रकार है, जो एक पूर्ण वेब पते का प्रतिनिधित्व करता है।
हेडर में क्लाइंट और सर्वर से संबंधित डेटा होता है। हेडर में प्रमाणीकरण डेटा शामिल है: एपीआई कुंजी, नाम, आईपी पता जो उस कंप्यूटर से संबंधित है जिस पर सर्वर स्थापित है, और प्रतिक्रिया प्रारूप के बारे में जानकारी भी।
शरीर का उपयोग सर्वर को अतिरिक्त जानकारी भेजने के लिए किया जाता है, जैसे कि वह डेटा जिसे आप जोड़ना चाहते हैं।
आरईएसटी एपीआई सिद्धांत
REST किसी विशेष तकनीक या प्लेटफॉर्म से बंधा नहीं है। यह भाषा-स्वतंत्र है। यह यह भी स्पष्ट रूप से निर्दिष्ट नहीं करता है कि एपीआई कैसे बनाया जाए। लेकिन यह छह वास्तु बाधाओं का उपयोग करता है। इंटरफ़ेस को उन बाधाओं का पालन करके एक मान्य REST API कहा जा सकता है। वे वर्णन करते हैं कि सर्वर कैसे अनुरोधों को संसाधित करता है और उनका जवाब देता है।
क्लाइंट सर्वर
REST API क्लाइंट-सर्वर आर्किटेक्चर शैली को लागू करता है। क्लाइंट संसाधनों के लिए अनुरोध भेज रहा है और डेटा संग्रहण से संबद्ध नहीं है। डाटा स्टोरेज सर्वर के अंदर रहता है। सर्वर यूजर इंटरफेस के साथ संचार में शामिल नहीं हैं। क्लाइंट और सर्वर अन्योन्याश्रित रूप से विकसित होते हैं। यह कारक REST को और भी अधिक लचीला और स्केलेबल बनाता है।
यूनिफ़ॉर्म इंटरफ़ेस
एकीकृत इंटरफ़ेस REST API को अलग करने वाला एक आवश्यक कारक है। इसमें कहा गया है कि सर्वर के साथ संचार करने का एक ही तरीका है, न कि एप्लिकेशन और डिवाइस के प्रकार का।
यूनिफ़ॉर्म इंटरफ़ेस के चार सिद्धांत हैं:
- संसाधनों की पहचान। प्रत्येक संसाधन की एक पहचान होनी चाहिए जो संसाधन स्थिति से स्वतंत्र हो। URL एक पहचानकर्ता के रूप में कार्य करता है।
- अभ्यावेदन के माध्यम से संसाधनों का हेरफेर। एक संसाधन प्रतिनिधित्व (उस क्लाइंट के पास) में संसाधन को हटाने या संशोधित करने के लिए आवश्यक डेटा होता है। क्लाइंट एक प्रतिनिधित्व भेजता है कि सर्वर (एक JSON ऑब्जेक्ट) को संशोधित करने, हटाने या जोड़ने की आवश्यकता है।
- स्व-वर्णनात्मक संदेश। ऐसे संदेशों में प्राप्तकर्ता के लिए उसकी समझ के लिए सभी जानकारी होती है। अलग दस्तावेज़ीकरण या संदेशों में किसी अतिरिक्त जानकारी की आवश्यकता नहीं है। अनुरोध को पार्स करने के लिए प्रत्येक संदेश में सर्वर के लिए पर्याप्त जानकारी होती है।
- हाइपरमीडिया अनुप्रयोग स्थिति के इंजन के रूप में। हाइपरमीडिया को प्रत्येक प्रतिक्रिया के लिए लिंक उपयोग की आवश्यकता होती है ताकि क्लाइंट अन्य संसाधन ढूंढ सके। आरईएसटी में, हाइपरमीडिया का उपयोग सभी इंटरैक्शन के लिए किया जाता है।
राज्यविहीन
इसका मतलब है कि सर्वर में क्लाइंट के बारे में कोई डेटा नहीं है। अनुरोध प्रसंस्करण के लिए आवश्यक सभी जानकारी अनुरोध में शामिल है। क्लाइंट सभी सत्र जानकारी संग्रहीत करता है।
संचित करने योग्य
प्रत्येक प्रतिक्रिया में जानकारी होनी चाहिए कि यह कैश करने योग्य है या नहीं और प्रतिक्रिया को कैश किया जा सकता है। यदि यह कैश करने योग्य है, तो समान अनुरोधों में, क्लाइंट सर्वर को बार-बार अनुरोध भेजे बिना उसी डेटा का उपयोग कर सकता है। यह प्रदर्शन और उपलब्धता को बेहतर बनाने में मदद करता है।
स्तरित प्रणाली
REST परत पदानुक्रम को लागू करता है, जो घटकों के व्यवहार पर कुछ प्रतिबंध बनाता है। एक स्तरित प्रणाली में, घटक केवल निकटतम स्तरों पर स्थित घटकों को देख सकते हैं और जिनके साथ वे बातचीत करते हैं।
मांग पर कोड
यह एक वैकल्पिक सुविधा है जो ग्राहकों को कोड डाउनलोड करने और निष्पादित करने की अनुमति देती है।
REST API में क्या अंतर है?
REST API के छह सिद्धांतों को इस इंटरफ़ेस और अन्य प्रकारों के बीच महत्वपूर्ण अंतर माना जा सकता है। इसके अलावा, कई पैरामीटर REST को अलग करते हैं।
सबसे पहले, आरईएसटी का सार अन्य प्रकारों के साथ इसकी असंगति को निर्धारित करता है। यह एक वास्तुशिल्प शैली है जहां एक आर्किटेक्चर उन आवश्यकताओं के एक समूह का प्रतिनिधित्व करता है जिन्हें आपको एक विश्वसनीय वेब सेवा प्रदान करने के लिए पालन करने की आवश्यकता होती है। उदाहरण के लिए, SOAP और RPC मैसेजिंग प्रोटोकॉल हैं जो संदेशों का वर्णन करते हैं। स्थापत्य शैली के विपरीत, जो केवल उन आवश्यकताओं (बाधाओं) को निर्दिष्ट करती है जिन्हें संदेश को पूरा करना चाहिए।
संरचना
आमतौर पर, एपीआई ऐप-टू-ऐप प्रारूप का अनुसरण करता है, जबकि आरईएसटी एक अलग संरचना का अनुसरण करता है - क्लाइंट-सर्वर। क्लाइंट और सर्वर स्वतंत्र रूप से विकसित हो रहे हैं, काम में अधिक लचीलापन प्रदान कर रहे हैं।
संदेश विनिमय प्रारूप
एपीआई आमतौर पर विशिष्ट संदेश प्रारूपों का उपयोग करते हैं; उदाहरण के लिए, SOAP XML का उपयोग करता है। आरईएसटी ऐसे सख्त सिद्धांत का पालन नहीं करता है। यह डेटा के आदान-प्रदान के लिए लगभग किसी भी प्रारूप का उपयोग कर सकता है। हालाँकि, JSON अब सबसे लोकप्रिय है।
JSON की लोकप्रियता के पीछे स्पष्ट कारण हैं - यह मानव-पठनीय और डेटा विनिमय प्रारूप का विश्लेषण करने में आसान है। JSON भाषा-स्वतंत्र है, और आप इसे जावास्क्रिप्ट के अलावा किसी भी भाषा के साथ उपयोग कर सकते हैं।
FLEXIBILITY
REST एक लचीली वास्तुशिल्प शैली है, इसलिए डेवलपर्स इसका व्यापक रूप से उपयोग करते हैं। SOAP की तुलना में - उन्नत सुरक्षा सुविधाओं के साथ एक अधिक जटिल प्रोटोकॉल जिसमें अधिक बैंडविड्थ की आवश्यकता होती है, REST में सरल दिशानिर्देश होते हैं जो डेवलपर्स को अपने प्रारूप में उन आवश्यकताओं का उपयोग करने की अनुमति देते हैं। आर्किटेक्चर उच्च प्रदर्शन प्रदान करता है, जिससे यह विशेष रूप से मोबाइल उपकरणों की मांग में है, जहां डाउनलोड गति महत्वपूर्ण है।
जैसा कि हम देखते हैं, अन्य ज्ञात एपीआई पर आरईएसटी के कुछ फायदे हैं। इसीलिए ट्विटर और गूगल जैसी सभी प्रमुख कंपनियों ने इसे अपने उत्पादों के लिए लागू किया है। आखिरकार, यह दुनिया भर के डेवलपर्स को डेटा स्थानांतरित करने का आदर्श और आसान तरीका है और सॉफ्टवेयर विकास के लिए कुशल और स्केलेबल इंटरफेस बनाने के लिए एक सिद्ध तंत्र है।