एप्लीकेशन प्रोग्रामिंग इंटरफेस
शब्द एपीआई एक संक्षिप्त शब्द है, और यह "एप्लिकेशन प्रोग्रामिंग इंटरफेस" के लिए खड़ा है।
एक रेस्तरां में एक मेनू की तरह एक एपीआई के बारे में सोचो। मेनू प्रत्येक पकवान के विवरण के साथ, आप जिस व्यंजन को ऑर्डर कर सकते हैं, उसकी एक सूची प्रदान करता है। जब आप निर्दिष्ट करते हैं कि आप कौन से मेनू आइटम चाहते हैं, रेस्तरां की रसोई काम करता है और आपको कुछ तैयार व्यंजन प्रदान करता है। आप बिल्कुल नहीं जानते कि रेस्टोरेंट उस भोजन को कैसे तैयार करता है, और आपको वास्तव में इसकी आवश्यकता नहीं है।
इसी प्रकार, एक एपीआई ऑपरेशन का एक समूह सूचीबद्ध करता है जो डेवलपर्स का उपयोग कर सकते हैं, साथ ही वे क्या करते हैं। डेवलपर को यह जानने की आवश्यकता नहीं है कि, उदाहरण के लिए, एक ऑपरेटिंग सिस्टम "इस रूप में सहेजें" संवाद बॉक्स बनाता है और प्रस्तुत करता है। उन्हें सिर्फ यह जानने की जरूरत है कि यह उनके ऐप में उपयोग के लिए उपलब्ध है।
यह एक आदर्श रूपक नहीं है, क्योंकि डेवलपर्स को परिणाम प्राप्त करने के लिए एपीआई को अपना डेटा प्रदान करना पड़ सकता है, इसलिए शायद यह एक फैंसी रेस्तरां की तरह है जहां आप रसोईघर के साथ काम करने के अपने कुछ तत्व प्रदान कर सकते हैं।
लेकिन यह काफी सटीक है। एपीआई डेवलपर्स को नाइट-किरकिरा काम करने के लिए प्लेटफार्म के कार्यान्वयन का लाभ उठाकर समय बचाने के लिए अनुमति देता है। यह कोड डेवलपर्स को बनाने की आवश्यकता को कम करने में मदद करता है, और एक ही मंच के लिए ऐप्स में अधिक स्थिरता बनाने में भी मदद करता है। एपीआई हार्डवेयर और सॉफ्टवेयर संसाधनों तक पहुंच नियंत्रित कर सकते हैं।
एपीआई डेवलपर्स के लिए जीवन आसान बनाते हैं
मान लें कि आप एक आईफोन के लिए एक ऐप विकसित करना चाहते हैं। ऐप्पल की आईओएस ऑपरेटिंग सिस्टम बड़ी संख्या में एपीआई प्रदान करता है-क्योंकि हर दूसरे ऑपरेटिंग सिस्टम आपके लिए यह आसान बनाता है।
यदि आप एक या अधिक वेब पेज दिखाने के लिए एक वेब ब्राउज़र एम्बेड करना चाहते हैं, उदाहरण के लिए, आपको अपने आवेदन के लिए स्क्रैच से अपना खुद का वेब ब्राउज़र प्रोग्राम करने की ज़रूरत नहीं है। आप अपने आवेदन में वेबकिट (सफारी) ब्राउज़र ऑब्जेक्ट एम्बेड करने के लिए WKWebView API का उपयोग करते हैं।
अगर आप आईफोन के कैमरे से फोटो या वीडियो कैप्चर करना चाहते हैं, तो आपको अपना कैमरा इंटरफेस लिखना नहीं है। आप अपने ऐप में आईफोन के अंतर्निर्मित कैमरे को एम्बेड करने के लिए कैमरा एपीआई का उपयोग करते हैं। यदि एपीआई इस आसान बनाने के लिए मौजूद नहीं थे, तो ऐप डेवलपर्स को अपना कैमरा सॉफ़्टवेयर बनाना होगा और कैमरा हार्डवेयर के इनपुट की व्याख्या करना होगा। लेकिन ऐप्पल के ऑपरेटिंग सिस्टम डेवलपर्स ने यह सब कड़ी मेहनत की है ताकि डेवलपर्स कैमरे को एम्बेड करने के लिए कैमरा एपीआई का उपयोग कर सकें और फिर अपने ऐप के निर्माण के साथ आगे बढ़ सकें। और, जब ऐप्पल कैमरा एपीआई में सुधार करता है, तो उस पर भरोसा करने वाले सभी ऐप्स स्वचालित रूप से उस सुधार का लाभ उठाएंगे।
यह हर मंच पर लागू होता है। उदाहरण के लिए, क्या आप विंडोज पर एक संवाद बॉक्स बनाना चाहते हैं? इसके लिए एक एपीआई है। एंड्रॉइड पर फिंगरप्रिंट प्रमाणीकरण का समर्थन करना चाहते हैं? इसके लिए एक एपीआई भी है, इसलिए आपको हर अलग एंड्रॉइड निर्माता के फिंगरप्रिंट सेंसर का परीक्षण करने की आवश्यकता नहीं है। डेवलपर्स को पहिया को बार-बार फिर से शुरू करने की ज़रूरत नहीं है।
एपीआई संसाधनों तक पहुंच नियंत्रण
एपीआई का उपयोग हार्डवेयर उपकरणों और सॉफ़्टवेयर कार्यों तक पहुंच को नियंत्रित करने के लिए भी किया जाता है, जिनके लिए किसी एप्लिकेशन को उपयोग करने की अनुमति नहीं हो सकती है। यही कारण है कि एपीआई अक्सर सुरक्षा में एक बड़ी भूमिका निभाते हैं।
उदाहरण के लिए, यदि आपने कभी वेबसाइट देखी है और अपने ब्राउज़र में एक संदेश देखा है कि वेबसाइट आपके सटीक स्थान को देखने के लिए कह रही है, तो वह वेबसाइट आपके वेब ब्राउज़र में भौगोलिक स्थान API का उपयोग करने का प्रयास कर रही है। वेब ब्राउज़र वेब डेवलपर्स के लिए आपके स्थान तक पहुंचने में आसान बनाने के लिए इस तरह के एपीआई का पर्दाफाश करते हैं-वे सिर्फ "आप कहां हैं?" पूछ सकते हैं और ब्राउजर आपके भौतिक स्थान को खोजने के लिए जीपीएस या पास के वाई-फाई नेटवर्क तक पहुंचने का कड़ी मेहनत करता है।
इसी सिद्धांत का उपयोग आईओएस और एंड्रॉइड जैसे आधुनिक मोबाइल ऑपरेटिंग सिस्टम पर किया जाता है, जहां मोबाइल ऐप्स को अनुमतियां होती हैं जिन्हें एपीआई तक पहुंच नियंत्रित करके लागू किया जा सकता है। उदाहरण के लिए, यदि कोई डेवलपर कैमरा एपीआई के माध्यम से कैमरे तक पहुंचने का प्रयास करता है, तो आप अनुमति अनुरोध से इंकार कर सकते हैं और ऐप के पास आपके डिवाइस के कैमरे तक पहुंचने का कोई तरीका नहीं है।
फाइल सिस्टम जो अनुमतियों का उपयोग करते हैं-जैसे कि वे विंडोज, मैक और लिनक्स पर करते हैं- फाइल सिस्टम एपीआई द्वारा लागू की गई अनुमतियां हैं। एक सामान्य अनुप्रयोग में कच्चे भौतिक हार्ड डिस्क तक सीधे पहुंच नहीं होती है। इसके बजाय, ऐप को एपीआई के माध्यम से फाइलों का उपयोग करना होगा।
एपीआई सेवाओं के बीच संचार के लिए उपयोग किया जाता है
एपीआई का उपयोग अन्य सभी कारणों से भी किया जाता है। उदाहरण के लिए, यदि आपने कभी किसी वेबसाइट पर एम्बेड की गई Google मानचित्र ऑब्जेक्ट देखी है, तो वह वेबसाइट उस मानचित्र को एम्बेड करने के लिए Google मानचित्र API का उपयोग कर रही है। Google इस तरह के एपीआई को वेब डेवलपर्स को उजागर करता है, जो फिर एपीआई का उपयोग जटिल वेबसाइटों को अपनी वेबसाइट पर प्लॉप करने के लिए कर सकते हैं। यदि इस तरह के एपीआई मौजूद नहीं थे, तो डेवलपर्स को अपने स्वयं के मानचित्र बनाना पड़ सकता है और वेबसाइट पर थोड़ा इंटरैक्टिव मानचित्र डालने के लिए अपना नक्शा डेटा प्रदान करना पड़ सकता है।
और, क्योंकि यह एक एपीआई है, Google तीसरे पक्ष की वेबसाइटों पर Google मानचित्र तक पहुंच को नियंत्रित कर सकता है, यह सुनिश्चित करने के लिए कि वे Google मानचित्र वेबसाइट को दिखाते हुए एक फ्रेम को गड़बड़ाने की कोशिश करने के बजाय इसे लगातार तरीके से उपयोग करते हैं।
यह कई अलग-अलग ऑनलाइन सेवाओं पर लागू होता है। Google अनुवाद से टेक्स्ट अनुवाद का अनुरोध करने के लिए एपीआई हैं, या किसी वेबसाइट पर ट्विटर से फेसबुक टिप्पणियां या ट्वीट एम्बेड करना।
ओएथ मानक कई एपीआई को भी परिभाषित करता है जो आपको किसी अन्य सेवा के साथ किसी वेबसाइट में साइन इन करने की अनुमति देता है - उदाहरण के लिए, अपने फेसबुक, Google या ट्विटर खातों का उपयोग किसी नई वेबसाइट में साइन इन करने के लिए केवल उस साइट के लिए एक नया उपयोगकर्ता खाता बनाने के बिना । एपीआई मानक अनुबंध होते हैं जो परिभाषित करते हैं कि कैसे डेवलपर्स सेवा के साथ संवाद करते हैं, और उन डेवलपर्स के आउटपुट को वापस प्राप्त करने की अपेक्षा करनी चाहिए।
यदि आप इसके माध्यम से प्राप्त कर चुके हैं, तो आपके पास एक बेहतर विचार होगा कि एपीआई क्या है। आखिरकार, आपको वास्तव में यह जानने की ज़रूरत नहीं है कि एपीआई तब तक है जब तक कि आप डेवलपर न हों। लेकिन, यदि आप एक सॉफ्टवेयर मंच या सेवा देखते हैं तो विभिन्न हार्डवेयर या सेवाओं के लिए नए एपीआई जोड़े गए हैं, डेवलपर्स के लिए ऐसी सुविधाओं का लाभ उठाना आसान होना चाहिए।