रेस्टफुल एपी
एक RESTful API एक प्रकार का वेब API है जो प्रतिनिधित्व की अवस्था स्थानांतरण (REST) के आर्किटेक्चरल बाध्यताओं का पालन करता है ताकि इंटरनेट पर मानकीकृत संचार की अनुमति मिल सके।
परिभाषा
एक RESTful API (प्रतिनिधित्व की अवस्था स्थानांतरण API) एक इंटरफेस है जो वेब के संस्कारों का उपयोग करके दो कंप्यूटर प्रणालियों के बीच जानकारी के आदान-प्रदान की अनुमति देता है, जिसमें सबसे अधिक आमतौर पर HTTP का उपयोग होता है। यह REST सिद्धांतों का अनुसरण करता है जैसे कि अवस्था-रहितता, URL के माध्यम से संसाधन पहचान, और संसाधनों पर कार्य करने के लिए मानक HTTP विधियों जैसे GET, POST, PUT और DELETE का उपयोग। RESTful API ग्राहक के सत्र की अवस्था को सर्वर पर नहीं रखते हैं, जो ग्राहक-सर्वर अंतःक्रिया में विस्तार और सरलता को बढ़ाता है। उत्तर अक्सर हल्के, पोर्टेबल फॉर्मेट जैसे JSON या XML में आते हैं, जिसके कारण इनका व्यापक रूप से उपयोग वेब और क्लाउड सेवाओं में होता है। RESTful API आधुनिक वितरित प्रणालियों, माइक्रोसर्विसेस और एकीकरणों के आधार के रूप में काम करते हैं।
लाभ
- अवस्था-रहित डिज़ाइन के कारण बहुत अच्छी तरह से पैमाने पर बढ़ाया जा सकता है, जो सर्वर मेमोरी की आवश्यकता कम करता है।
- प्लेटफॉर्म और भाषा-अनुकूल, जो व्यापक अंतर-संगतता की अनुमति देता है।
- मानक HTTP विधियों का उपयोग करता है, जो कार्यान्वयन और उपकरणों को सरल बनाता है।
- लचीले डेटा फॉर्मेट (जैसे JSON), मशीनों और विकासकर्ताओं के लिए विश्लेषण करने में आसान।
- वेब, क्लाउड और मोबाइल पारिस्थितिकी तंत्र में व्यापक रूप से समर्थित।
नुकसान
- सख्त REST पालन (जैसे HATEOAS) अक्सर गलत तरीके से समझा जाता है या पूरी तरह से लागू नहीं किया जाता है।
- अवस्था-रहितता के कारण प्रत्येक अनुरोध में पुनः प्रमाणीकरण और संदर्भ की आवश्यकता हो सकती है।
- वास्तविक समय द्विदिश यातायात के लिए उपयुक्त नहीं है (जैसे WebSockets)।
- सरल आंतरिक सेवाओं के लिए HTTP विधियों और हेडर के अतिरिक्त भार हो सकता है।
- अक्सर RESTful सिद्धांतों का अनुसरण न करते हुए एक सामान्य HTTP API के रूप में गलत उपयोग किया जाता है।
उपयोग के मामले
- फ्रंटेंड वेब या मोबाइल एप्लिकेशन को बैकएंड सेवाओं से जोड़ना।
- भुगतान गेटवे या सोशल मीडिया API जैसी तीसरे पक्ष की सेवाओं के एकीकरण।
- अलग-अलग घटकों के साथ माइक्रोसर्विस वार्किंग संरचना बनाना।
- उपयोगकर्ता प्रोफाइल या उत्पाद कैटलॉग जैसे संसाधनों को प्राप्त करना और संशोधित करना।
- सिस्टम के बीच बादल कार्य प्रवाह और डेटा आदान-प्रदान को स्वचालित करना।