एपीआई: Difference between revisions

From Vigyanwiki
(Created page with "{{short description|Software interface between computers and/or programs}} {{other uses}} {{redirect|Api.php|the Wikipedia API|Special:ApiHelp|selfref=true}} File:Screenshot...")
 
No edit summary
 
(11 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{short description|Software interface between computers and/or programs}}
{{short description|Software interface between computers and/or programs}}
{{other uses}}
{{other uses}}
{{redirect|Api.php|the Wikipedia API|Special:ApiHelp|selfref=true}}
{{redirect|Api.php|विकिपीडिया एपीआई|विशेष: एपीआई हेल्प|selfref=ट्रू}}
[[File:Screenshot of NASA API documentation.png|thumb|नासा द्वारा लिखित वेब एपीआई प्रलेखन का स्क्रीनशॉट।]]एक एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस (एपीआई) दो या दो से अधिक कंप्यूटर प्रोग्रामों के लिए एक दूसरे के साथ संवाद करने का एक तरीका है। यह एक प्रकार का सॉफ्टवेयर इंटरफेस (कंप्यूटिंग) है, जो सॉफ्टवेयर के अन्य टुकड़ों को सेवा प्रदान करता है।<ref>{{cite book |last=Reddy |first=Marathi |author-link= |date=2011 |title=सी ++ के लिए एपीआई डिजाइन|url=https://www.google.com/books/edition/API_Design_for_C++/IY29LylT85wC |publisher=Elsevier Science |page=1 |isbn=9780123850041}}</ref> एक दस्तावेज़ या मानक जो इस तरह के कनेक्शन या इंटरफ़ेस का निर्माण या उपयोग करने का वर्णन करता है, उसे एपीआई विनिर्देश कहा जाता है। एक कंप्यूटर सिस्टम जो इस मानक को पूरा करता है उसे एपीआई को लागू करने या उजागर करने के लिए कहा जाता है। एपीआई शब्द या तो विनिर्देश या कार्यान्वयन को संदर्भित कर सकता है।
[[File:Screenshot of NASA API documentation.png|thumb|नासा द्वारा लिखित वेब एपीआई प्रलेखन का स्क्रीनशॉट।]]'''एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस''' (एपीआई) दो या दो से अधिक कंप्यूटर प्रोग्रामों के लिए एक दूसरे के साथ संवाद करने का एक तरीका है। यह एक प्रकार का सॉफ़्टवेयर इंटरफ़ेस है, जो सॉफ़्टवेयर के अन्य भागों को सेवा प्रदान करता है।<ref>{{cite book |last=Reddy |first=Marathi |author-link= |date=2011 |title=सी ++ के लिए एपीआई डिजाइन|url=https://www.google.com/books/edition/API_Design_for_C++/IY29LylT85wC |publisher=Elsevier Science |page=1 |isbn=9780123850041}}</ref> एक दस्तावेज़ या मानक जो वर्णन करता है कि इस तरह के संबंध या इंटरफ़ेस को कैसे बनाया या उपयोग किया जाए, उसे एपीआई विनिर्देश कहा जाता है। एक कंप्यूटर प्रणाली जो इस मानक को पूरा करता है, उसे एपीआई को लागू करने या प्रदर्शित करने के लिए कहा जाता है। एपीआई शब्द विनिर्देश या कार्यान्वयन के लिए संदर्भित हो सकता है।  


एक उपयोगकर्ता इंटरफ़ेस के विपरीत, जो एक कंप्यूटर को एक व्यक्ति से जोड़ता है, एक एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस कंप्यूटर या सॉफ़्टवेयर के टुकड़ों को एक दूसरे से जोड़ता है। यह एक कंप्यूटर प्रोग्रामर के अलावा किसी अन्य व्यक्ति (अंतिम उपयोगकर्ता) द्वारा सीधे उपयोग करने का इरादा नहीं है जो इसे सॉफ्टवेयर में शामिल कर रहा है। एक एपीआई अक्सर विभिन्न भागों से बना होता है जो प्रोग्रामर के लिए उपलब्ध उपकरण या सेवाओं के रूप में कार्य करता है। एक प्रोग्राम या एक प्रोग्रामर जो इन भागों में से एक का उपयोग करता है, उसे एपीआई के उस हिस्से को कॉल करने के लिए कहा जाता है। एपीआई बनाने वाली कॉल को सबरूटीन्स, मेथड्स, रिक्वेस्ट या कम्युनिकेशन एंडपॉइंट्स के रूप में भी जाना जाता है। एक एपीआई विनिर्देश इन कॉलों को परिभाषित करता है, जिसका अर्थ है कि यह बताता है कि उनका उपयोग या कार्यान्वयन कैसे किया जाए।
यूजर इंटरफेस के विपरीत, जो कंप्यूटर को व्यक्ति से जोड़ता है, एप्लिकेशन प्रोग्रामिंग इंटरफेस कंप्यूटर या सॉफ्टवेयर के भागों को एक दूसरे से जोड़ता है। यह एक कंप्यूटर प्रोग्रामर के अलावा किसी अन्य व्यक्ति (अंतिम उपयोगकर्ता) द्वारा सीधे उपयोग किए जाने के लिए अभिप्रेत नहीं है जो इसे सॉफ्टवेयर में सम्मिलित कर रहा है। एक एपीआई प्रायः विभिन्न भागों से बना होता है जो प्रोग्रामर के लिए उपलब्ध उपकरण या सेवाओं के रूप में कार्य करता है। एक प्रोग्राम या प्रोग्रामर जो इन भागों में से एक का उपयोग करता है, उसे एपीआई के उस हिस्से को कॉल करने के लिए कहा जाता है। एपीआई बनाने वाली कॉल को सबरूटीन्स, विधियों, अनुरोधों या समापन बिंदुओं के रूप में भी जाना जाता है। एक एपीआई विनिर्देश इन कॉलों को परिभाषित करता है, जिसका अर्थ है कि यह बताता है कि उनका उपयोग कैसे करें या उन्हें कैसे कार्यान्वित करें।
 
एपीआई का एक उद्देश्य सूचना को छिपाना है कि एक सिस्टम कैसे काम करता है, केवल उन हिस्सों को उजागर करना जो एक प्रोग्रामर को उपयोगी लगेगा और आंतरिक विवरण बाद में बदलने पर भी उन्हें सुसंगत बनाए रखेगा। एक एपीआई सिस्टम की एक विशेष जोड़ी के लिए कस्टम-निर्मित हो सकता है, या यह एक साझा मानक हो सकता है जो कई सिस्टमों के बीच इंटरऑपरेबिलिटी की अनुमति देता है।
 
एपीआई शब्द का प्रयोग अक्सर वेब एपीआई को संदर्भित करने के लिए किया जाता है,<ref name="Lane2019"/>जो इंटरनेट से जुड़े कंप्यूटरों के बीच संचार की अनुमति देते हैं। प्रोग्रामिंग लैंग्वेज, लाइब्रेरी (कंप्यूटिंग), कंप्यूटर ऑपरेटिंग सिस्टम और कंप्यूटर हार्डवेयर के लिए एपीआई भी हैं। एपीआई की उत्पत्ति 1940 के दशक में हुई थी, हालांकि यह शब्द 1960 और 1970 के दशक तक सामने नहीं आया था। एपीआई में हाल के विकास ने माइक्रोसर्विसेज की लोकप्रियता में वृद्धि की है, जो सार्वजनिक एपीआई के माध्यम से एक्सेस की जाने वाली शिथिल युग्मित सेवाएं हैं।<ref>{{cite web |url=https://www.businesswire.com/news/home/20210825005630/en/Global-Cloud-Microservices-Market-2021-to-2026---Growth-Trends-COVID-19-Impact-and-Forecasts---ResearchAndMarkets.com |title=ग्लोबल क्लाउड माइक्रोसर्विसेज मार्केट (2021 से 2026)|last=Wood |first=Laura |date=2021-08-25 |access-date=2022-03-29}}</ref>


एपीआई का एक उद्देश्य आंतरिक विवरणों को छिपाना है कि एक प्रणाली कैसे काम करती है, केवल उन हिस्सों को प्रकट करता है जो प्रोग्रामर को उपयोगी लगेगा और आंतरिक विवरण बाद में बदल जाने पर भी उन्हें सुसंगत बनाए रखेगा। एक एपीआई प्रणाली की एक विशेष जोड़ी के लिए कस्टम-निर्मित हो सकता है, या यह एक साझा मानक हो सकता है जो कई प्रणालियों के बीच अंर्तकार्यकारी को अनुमति देता है।


एपीआई शब्द का प्रयोग प्रायः वेब एपीआई को संदर्भित करने के लिए किया जाता है,<ref name="Lane2019">{{cite web |url=https://blog.postman.com/intro-to-apis-history-of-apis/ |title=एपीआई का परिचय: एपीआई का इतिहास|last=Lane |first=Kin |date=October 10, 2019 |website=Postman |access-date=September 18, 2020 |quote=जब आप "एपीआई" या इसके विस्तारित संस्करण "एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस" सुनते हैं, तो यह लगभग हमेशा हमारे आधुनिक दृष्टिकोण के संदर्भ में होता है, जिसमें हम JSON या XML प्रारूप में मशीन पठनीय डेटा तक पहुंच प्रदान करने के लिए HTTP का उपयोग करते हैं, अक्सर बस "वेब एपीआई" के रूप में जाना जाता है। API लगभग कंप्यूटिंग जितनी लंबी रही हैं, लेकिन आधुनिक वेब API ने 2000 के दशक की शुरुआत में आकार लेना शुरू किया था।}}</ref> जो इंटरनेट से जुड़े कंप्यूटरों के बीच संचार की अनुमति देता है। प्रोग्रामिंग भाषाओं, सॉफ्टवेयर लाइब्रेरी, कंप्यूटर ऑपरेटिंग सिस्टम और कंप्यूटर हार्डवेयर के लिए एपीआई भी हैं। एपीआई की उत्पत्ति 1940 के दशक में हुई थी, हालांकि यह शब्द 1960 और 1970 के दशक तक सामने नहीं आया था। एपीआई में हाल के विकास ने माइक्रोसर्विसेज की लोकप्रियता में वृद्धि की है, जो सार्वजनिक एपीआई के माध्यम से अभिगम की जाने वाली शिथिल युग्मित सेवाएं हैं।<ref>{{cite web |url=https://www.businesswire.com/news/home/20210825005630/en/Global-Cloud-Microservices-Market-2021-to-2026---Growth-Trends-COVID-19-Impact-and-Forecasts---ResearchAndMarkets.com |title=ग्लोबल क्लाउड माइक्रोसर्विसेज मार्केट (2021 से 2026)|last=Wood |first=Laura |date=2021-08-25 |access-date=2022-03-29}}</ref>
== उद्देश्य ==
== उद्देश्य ==
अनुप्रयोगों के निर्माण में, एक एपीआई एब्स्ट्रेक्शन (सॉफ्टवेयर इंजीनियरिंग) द्वारा प्रोग्रामिंग को सरल बनाता है और अंतर्निहित कार्यान्वयन और केवल उन वस्तुओं या कार्यों को उजागर करता है जिनकी डेवलपर को आवश्यकता होती है। जबकि एक ईमेल क्लाइंट के लिए एक ग्राफिकल इंटरफ़ेस एक उपयोगकर्ता को एक बटन प्रदान कर सकता है जो नए ईमेल लाने और हाइलाइट करने के लिए सभी चरणों का प्रदर्शन करता है, फ़ाइल इनपुट/आउटपुट के लिए एक एपीआई डेवलपर को एक सबरूटीन दे सकता है जो बिना किसी फ़ाइल को एक स्थान से दूसरे स्थान पर कॉपी करता है। आवश्यकता है कि डेवलपर दृश्यों के पीछे होने वाली जर्नलिंग फ़ाइल सिस्टम संचालन को समझे।<ref name="Clarke4">{{Cite web |url=http://www.drdobbs.com/windows/measuring-api-usability/184405654 |title=मापने एपीआई उपयोगिता|last=Clarke |first=Steven |date=2004 |website=Dr. Dobb's |access-date=29 July 2016}}</ref>
अनुप्रयोगों के निर्माण में, एक एपीआई अंतर्निहित कार्यान्वयन को सारणित करके प्रोग्रामिंग को सरल बनाता है और केवल उन वस्तुओं या कार्यों को प्रकट करता है जिनकी डेवलपर को आवश्यकता होती है। जबकि एक ईमेल क्लाइंट के लिए ग्राफिकल इंटरफ़ेस उपयोगकर्ता को एक बटन प्रदान कर सकता है जो नए ईमेल लाने और स्पष्ट करने के लिए सभी चरणों का पालन करता है, फ़ाइल इनपुट/आउटपुट के लिए एक एपीआई डेवलपर को एक ऐसा फ़ंक्शन दे सकता है जो फ़ाइल को एक स्थान से दूसरे स्थान पर कॉपी करता है इस आवश्यकता के बिना कि डेवलपर दृश्यों के पीछे होने वाली फाइल प्रणाली संचालन को समझता है।<ref name="Clarke4">{{Cite web |url=http://www.drdobbs.com/windows/measuring-api-usability/184405654 |title=मापने एपीआई उपयोगिता|last=Clarke |first=Steven |date=2004 |website=Dr. Dobb's |access-date=29 July 2016}}</ref>
 
 
== शब्द का इतिहास ==
== शब्द का इतिहास ==


[[File:Database_management_system_diagram_from_1978_workshop.png|thumb|left|1978 का एक रेखाचित्र, केवल एप्लिकेशन प्रोग्राम से परे, एक सामान्य प्रोग्रामिंग इंटरफ़ेस बनने के लिए एपीआई के विचार के विस्तार का प्रस्ताव करता है।<ref name="NBS1981" />]]एपीआई शब्द शुरू में केवल एंड-यूज़र-फेसिंग प्रोग्राम के लिए एक इंटरफ़ेस का वर्णन करता है, जिसे एप्लिकेशन प्रोग्राम के रूप में जाना जाता है। यह उत्पत्ति अभी भी एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस के नाम से परिलक्षित होती है। आज, यह शब्द व्यापक है, जिसमें यूटिलिटी सॉफ़्टवेयर और यहां तक ​​कि हार्डवेयर इंटरफ़ेस डिज़ाइन भी शामिल है।<ref name="Bloch2018" />
[[File:Database_management_system_diagram_from_1978_workshop.png|thumb|left|1978 का एक रेखाचित्र, केवल एप्लिकेशन प्रोग्राम से परे, एक सामान्य प्रोग्रामिंग इंटरफ़ेस बनने के लिए एपीआई के विचार के विस्तार का प्रस्ताव करता है।<ref name="NBS1981">{{cite report |date=April 1981 |title=डाटाबेस आर्किटेक्चर - एक व्यवहार्यता कार्यशाला|url=https://hdl.handle.net/2027/mdp.39015077587742?urlappend=%3Bseq=53 |publisher=U.S. Department of Commerce, National Bureau of Standards |pages=45–47 |access-date=September 18, 2020 |location=Washington, DC|hdl=2027/mdp.39015077587742?urlappend=%3Bseq=53 |id=NBS special publication 500-76 |lccn=81600004}}</ref>]]एपीआई शब्द प्रारम्भ में केवल एंड-यूज़र-फेसिंग प्रोग्राम के लिए एक इंटरफ़ेस का वर्णन करता है, जिसे एप्लिकेशन प्रोग्राम के रूप में जाना जाता है। यह उत्पत्ति अभी भी "एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस" के नाम से परिलक्षित होती है। आज, यह शब्द व्यापक है, जिसमें उपयोगिता (यूटिलिटी) सॉफ्टवेयर और यहां तक कि हार्डवेयर इंटरफेस भी सम्मिलित हैं।<ref name="Bloch2018" />
=== 1940 और 1950 के दशक ===


एपीआई का विचार स्वयं शब्द से बहुत पुराना है। ब्रिटिश कंप्यूटर वैज्ञानिक मौरिस विल्क्स और डेविड व्हीलर ने 1940 के दशक में एक प्रारंभिक कंप्यूटर ईडीएसएसी (EDSAC) के लिए एक मॉड्यूलर सॉफ्टवेयर लाइब्रेरी पर काम किया। इस लाइब्रेरी में सबरूटीन्स को फाइलिंग कैबिनेट में व्यवस्थित पंच पेपर टेप पर संग्रहित किया गया था। इस कैबिनेट में यह भी सम्मिलित है कि विल्क्स और व्हीलर ने प्रत्येक सबरूटीन के बारे में नोट्स की एक "लाइब्रेरी कैटलॉग" को क्या कहा और इसे एक प्रोग्राम में कैसे सम्मिलित किया जाए। आज, इस तरह के कैटलॉग को एपीआई (या एपीआई विनिर्देश या एपीआई दस्तावेज) कहा जाएगा क्योंकि यह एक प्रोग्रामर को निर्देश देता है कि प्रोग्रामर को प्रत्येक सबरूटीन का उपयोग (या "कॉल") कैसे करें।<ref name="Bloch2018" />


विल्क्स एंड व्हीलर की 1951 की किताब एक इलेक्ट्रॉनिक डिजिटल कंप्यूटर के लिए प्रोग्राम तैयार करने में पहला प्रकाशित एपीआई विनिर्देश सम्मिलित है। जोशुआ बलोच का मानना है कि विल्क्स और व्हीलर ने "अव्यक्त रूप से एपीआई का आविष्कार" किया क्योंकि यह एक ऐसी अवधारणा है जिसे खोजा गया है न कि आविष्कार किया गया है।<ref name="Bloch2018">{{cite speech |last=Bloch |first=Joshua |author-link=Joshua Bloch |title=एपीआई का एक संक्षिप्त, रायशुदा इतिहास|event=QCon |date=August 8, 2018 |location=San Francisco |publisher=InfoQ |url=https://www.infoq.com/presentations/history-api/ |access-date=September 18, 2020}}</ref>


=== 1940 और 1950 के दशक ===
[[File:Univac 1108 Census Bureau.jpg|thumb|300px|हालांकि एपीआई शब्द गढ़ने वाले लोग यूनीवैक 1108 पर सॉफ्टवेयर कार्यान्वयन कर रहे थे, उनके एपीआई का लक्ष्य हार्डवेयर स्वतंत्र प्रोग्राम को संभव बनाना था।<ref name="CottonGreatorex1968" />]]


एपीआई का विचार अपने आप में शब्द से बहुत पुराना है। ब्रिटिश कंप्यूटर वैज्ञानिक मौरिस विल्क्स और डेविड व्हीलर (कंप्यूटर वैज्ञानिक) ने 1940 के दशक में EDSAC, एक प्रारंभिक कंप्यूटर के लिए एक मॉड्यूलर सॉफ्टवेयर लाइब्रेरी पर काम किया। इस लाइब्रेरी में सबरूटीन्स फाइलिंग कैबिनेट में व्यवस्थित छिद्रित पेपर टेप पर संग्रहीत किए गए थे। इस कैबिनेट में यह भी शामिल है कि विल्क्स और व्हीलर ने प्रत्येक उपनेमका के बारे में नोट्स की एक पुस्तकालय सूची और इसे एक कार्यक्रम में कैसे शामिल किया जाए। आज, इस तरह के कैटलॉग को एपीआई (या एपीआई विनिर्देश या एपीआई दस्तावेज) कहा जाएगा क्योंकि यह एक प्रोग्रामर को निर्देश देता है कि प्रोग्रामर को प्रत्येक सबरूटीन का उपयोग कैसे करें (या कॉल करें)।<ref name="Bloch2018" />
=== 1960 और 1970 के दशक ===


विल्क्स एंड व्हीलर की 1951 की पुस्तक द प्रिपरेशन ऑफ प्रोग्राम्स फॉर ए इलेक्ट्रॉनिक डिजिटल कंप्यूटर में पहला प्रकाशित एपीआई विनिर्देश शामिल है। जोशुआ बलोच का मानना ​​है कि विल्क्स और व्हीलर ने हाल ही में एपीआई का आविष्कार किया था क्योंकि यह एक ऐसी अवधारणा है जो आविष्कार की तुलना में खोजी गई है।<ref name="Bloch2018">{{cite speech |last=Bloch |first=Joshua |author-link=Joshua Bloch |title=एपीआई का एक संक्षिप्त, रायशुदा इतिहास|event=QCon |date=August 8, 2018 |location=San Francisco |publisher=InfoQ |url=https://www.infoq.com/presentations/history-api/ |access-date=September 18, 2020}}</ref>
शब्द "एप्लिकेशन प्रोग्राम इंटरफ़ेस" (बिना -आईएनजी प्रत्यय के) पहली बार 1968 में एएफआईपीएस (AFIPS) सम्मेलन में प्रस्तुत रिमोट कंप्यूटर ग्राफिक्स के लिए डेटा संरचना और तकनीक नामक एक पेपर में दर्ज किया गया था।<ref>{{Cite OED|application program interface}}</ref><ref name="Bloch2018" /> इस पेपर के लेखक इस स्थिति में बाकी कंप्यूटर प्रणाली के साथ एक ग्राफिक प्रोग्राम की परस्पर क्रिया का वर्णन करने के लिए इस शब्द का उपयोग करते हैं। एक सुसंगत एप्लिकेशन इंटरफ़ेस (फोरट्रान सबरूटीन कॉल्स से मिलकर) का उद्देश्य प्रोग्रामर को ग्राफिक्स डिस्प्ले डिवाइस विशिष्टताओं से निपटने से मुक्त करना और कंप्यूटर या डिस्प्ले को बदलने पर हार्डवेयर स्वतंत्रता प्रदान करना था।<ref name="CottonGreatorex1968">{{cite conference |url=https://www.computer.org/csdl/pds/api/csdl/proceedings/download-article/12OmNyRPgFZ/pdf |title=दूरस्थ कंप्यूटर ग्राफिक्स के लिए डेटा संरचनाएं और तकनीकें|last1=Cotton |first1=Ira W. |last2=Greatorex |first2=Frank S. |date=December 1968 |conference=AFIPS 1968 Fall Joint Computer Conference |volume=I |book-title=AFIPS '68: Proceedings of the December 9–11, 1968, Fall Joint Computer Conference |publisher=Association for Computing Machinery |location=San Francisco, California |pages=533–544 |isbn=978-1450378994 |oclc= 1175621908 |doi=10.1145/1476589.1476661 }}</ref>


[[File:Univac 1108 Census Bureau.jpg|thumb|300px|Although the people who coined the term API were implementing software on a UNIVAC 1100/2200 श्रृंखला #1108, उनके एपीआई का लक्ष्य हार्डवेयर स्वतंत्र कार्यक्रमों को संभव बनाना था।<ref name="CottonGreatorex1968" />]]
डेटाबेस के क्षेत्र में इस शब्द का परिचय सी.जे. डेट<ref>{{cite book |last=Date |first=C. J. |author-link=Christopher J. Date |year=2019 |title=ई.एफ. कॉड एंड रिलेशनल थ्योरी: कॉड के मेजर डाटाबेस राइटिंग की एक विस्तृत समीक्षा और विश्लेषण|url=https://books.google.com/books?id=2Sy4DwAAQBAJ&pg=PA135 |page=135 |isbn=978-1684705276}}</ref> ने 1974 में द रिलेशनल एंड नेटवर्क एप्रोचेज़- कम्पेरिज़न ऑफ़ द एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस नामक एक पेपर में किया था।<ref>{{cite conference |title=संबंधपरक और नेटवर्क दृष्टिकोण: एप्लिकेशन प्रोग्रामिंग इंटरफेस की तुलना|last1=Date |first1=C. J. |last2=Codd |first2=E. F. |date=January 1975 |editor=Randall Rustin |conference=SIGMOD Workshop 1974 |volume=2 |book-title=Proceedings of 1974 ACM-SIGMOD Workshop on Data Description, Access and Control |publisher=Association for Computing Machinery |location=Ann Arbor, Michigan |pages=83–113 |isbn=978-1450374187 |oclc=1175623233 |doi=10.1145/800297.811532 }}</ref> एक एपीआई डेटाबेस प्रबंधन प्रणालियों के लिए एएनएसआई/स्पार्क रूपरेखा का हिस्सा बन गया। इस रूपरेखा ने एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस को अन्य इंटरफेस, जैसे कि जांच इंटरफ़ेस से अलग से व्यवहार किया। 1970 के दशक में डाटाबेस पेशेवरों ने देखा कि इन विभिन्न इंटरफेसों को जोड़ा जा सकता है पर्याप्त रूप से समृद्ध एप्लिकेशन इंटरफ़ेस अन्य इंटरफेसों का भी समर्थन कर सकता है।<ref name="NBS1981" />  


=== 1960 और 1970 के दशक ===
टर्म एप्लिकेशन प्रोग्राम इंटरफ़ेस (बिना -इंग प्रत्यय के) पहली बार 1968 में AFIPS सम्मेलन में प्रस्तुत रिमोट कंप्यूटर ग्राफिक्स के लिए डेटा स्ट्रक्चर्स एंड टेक्निक्स नामक एक पेपर में दर्ज किया गया था।<ref>{{Cite OED|application program interface}}</ref><ref name="Bloch2018" />इस पत्र के लेखक इस शब्द का उपयोग एक एप्लिकेशन की बातचीत का वर्णन करने के लिए करते हैं - इस मामले में एक ग्राफिक्स प्रोग्राम - बाकी कंप्यूटर सिस्टम के साथ। एक सुसंगत एप्लिकेशन इंटरफ़ेस (फोरट्रान सबरूटीन कॉल से मिलकर) का उद्देश्य प्रोग्रामर को ग्राफिक्स डिस्प्ले डिवाइस की आइडियोसिंक्रसी से निपटने से मुक्त करना था, और कंप्यूटर या डिस्प्ले को बदलने पर हार्डवेयर स्वतंत्रता प्रदान करना था।<ref name="CottonGreatorex1968">{{cite conference |url=https://www.computer.org/csdl/pds/api/csdl/proceedings/download-article/12OmNyRPgFZ/pdf |title=दूरस्थ कंप्यूटर ग्राफिक्स के लिए डेटा संरचनाएं और तकनीकें|last1=Cotton |first1=Ira W. |last2=Greatorex |first2=Frank S. |date=December 1968 |conference=AFIPS 1968 Fall Joint Computer Conference |volume=I |book-title=AFIPS '68: Proceedings of the December 9–11, 1968, Fall Joint Computer Conference |publisher=Association for Computing Machinery |location=San Francisco, California |pages=533–544 |isbn=978-1450378994 |oclc= 1175621908 |doi=10.1145/1476589.1476661 }}</ref>
यह शब्द डेटाबेस के क्षेत्र में क्रिस्टोफर जे. डेट|सी द्वारा पेश किया गया था। जे दिनांक<ref>{{cite book |last=Date |first=C. J. |author-link=Christopher J. Date |year=2019 |title=ई.एफ. कॉड एंड रिलेशनल थ्योरी: कॉड के मेजर डाटाबेस राइटिंग की एक विस्तृत समीक्षा और विश्लेषण|url=https://books.google.com/books?id=2Sy4DwAAQBAJ&pg=PA135 |page=135 |isbn=978-1684705276}}</ref> 1974 में द रिलेशनल डेटाबेस एंड नेटवर्क मॉडल अप्रोचेज: कंपेरिजन ऑफ द एप्लीकेशन प्रोग्रामिंग इंटरफेस नामक पेपर में।<ref>{{cite conference |title=संबंधपरक और नेटवर्क दृष्टिकोण: एप्लिकेशन प्रोग्रामिंग इंटरफेस की तुलना|last1=Date |first1=C. J. |last2=Codd |first2=E. F. |date=January 1975 |editor=Randall Rustin |conference=SIGMOD Workshop 1974 |volume=2 |book-title=Proceedings of 1974 ACM-SIGMOD Workshop on Data Description, Access and Control |publisher=Association for Computing Machinery |location=Ann Arbor, Michigan |pages=83–113 |isbn=978-1450374187 |oclc=1175623233 |doi=10.1145/800297.811532 }}</ref> एक एपीआई ANSI-SPARC आर्किटेक्चर| डेटाबेस प्रबंधन प्रणालियों के लिए ANSI/SPARC फ्रेमवर्क का एक हिस्सा बन गया। इस ढांचे ने एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस को अन्य इंटरफेस, जैसे कि क्वेरी इंटरफ़ेस से अलग से व्यवहार किया। 1970 के दशक में डेटाबेस पेशेवरों ने देखा कि इन विभिन्न इंटरफेस को जोड़ा जा सकता है; पर्याप्त रूप से समृद्ध एप्लिकेशन इंटरफ़ेस अन्य इंटरफेस का भी समर्थन कर सकता है।<ref name="NBS1981">{{cite report |date=April 1981 |title=डाटाबेस आर्किटेक्चर - एक व्यवहार्यता कार्यशाला|url=https://hdl.handle.net/2027/mdp.39015077587742?urlappend=%3Bseq=53 |publisher=U.S. Department of Commerce, National Bureau of Standards |pages=45–47 |access-date=September 18, 2020 |location=Washington, DC|hdl=2027/mdp.39015077587742?urlappend=%3Bseq=53 |id=NBS special publication 500-76 |lccn=81600004}}</ref>
इस अवलोकन ने एपीआई का नेतृत्व किया जो सभी प्रकार की प्रोग्रामिंग का समर्थन करता था, न कि केवल एप्लिकेशन प्रोग्रामिंग का।
इस अवलोकन ने एपीआई का नेतृत्व किया जो सभी प्रकार की प्रोग्रामिंग का समर्थन करता था, न कि केवल एप्लिकेशन प्रोग्रामिंग का।


=== 1990 के दशक ===
=== 1990 के दशक ===
1990 तक, एपीआई को टेक्नोलॉजिस्ट कार्ल मालामुद द्वारा कुछ कार्यों को करने के लिए एक प्रोग्रामर के लिए उपलब्ध सेवाओं के एक सेट के रूप में परिभाषित किया गया था।<ref>{{cite book |last=Carl |first=Malamud |author-link=Carl Malamud |date=1990 |title=नोवेल नेटवर्क का विश्लेषण|url=https://babel.hathitrust.org/cgi/pt?id=mdp.39015018454903&seq=314 |publisher=Van Nostrand Reinhold |page=294 |isbn=978-0442003647}}</ref>
1990 तक, प्रौद्योगिकीविद् कार्ल मलामुद द्वारा एपीआई को "कुछ कार्यों को करने के लिए एक प्रोग्रामर के लिए उपलब्ध सेवाओं का एक सेट" के रूप में परिभाषित किया गया था।<ref>{{cite book |last=Carl |first=Malamud |author-link=Carl Malamud |date=1990 |title=नोवेल नेटवर्क का विश्लेषण|url=https://babel.hathitrust.org/cgi/pt?id=mdp.39015018454903&seq=314 |publisher=Van Nostrand Reinhold |page=294 |isbn=978-0442003647}}</ref>
दूरस्थ प्रक्रिया कॉल और वेब एपीआई की शुरुआत के साथ एपीआई के विचार को फिर से विस्तारित किया गया। चूंकि 1970 और 1980 के दशक में कंप्यूटर नेटवर्क आम हो गए थे, प्रोग्रामर न केवल अपने स्थानीय कंप्यूटरों पर स्थित पुस्तकालयों को बुलाना चाहते थे बल्कि अन्यत्र स्थित कंप्यूटरों पर भी कॉल करना चाहते थे। इन दूरस्थ प्रक्रिया कॉलों को विशेष रूप से जावा (प्रोग्रामिंग भाषा) भाषा द्वारा समर्थित किया गया था। 1990 के दशक में, इंटरनेट के प्रसार के साथ, CORBA, कंपोनेंट ऑब्जेक्ट मॉडल और डिस्ट्रिब्यूटेड कंपोनेंट ऑब्जेक्ट मॉडल जैसे मानकों ने API सेवाओं को उजागर करने का सबसे आम तरीका बनने के लिए प्रतिस्पर्धा की।<ref name="JinSahniShevat2018">{{cite book  |first1=Brenda |last1=Jin |first2=Saurabh |last2=Sahni |first3=Amir |last3=Shevat |year=2018 |title=डिजाइनिंग वेब एपीआई|url=https://www.google.com/books/edition/Designing_Web_APIs/Dg1rDwAAQBAJ |location= |publisher=O'Reilly Media |isbn=9781492026877}}</ref>


दूरस्थ प्रक्रिया कॉल और वेब एपीआई का प्रारम्भ के साथ एपीआई के विचार को फिर से विस्तारित किया गया। चूंकि 1970 और 1980 के दशक में कंप्यूटर नेटवर्क सामान्य हो गए थे, प्रोग्रामर न केवल अपने स्थानीय कंप्यूटरों पर बल्कि अन्यत्र स्थित कंप्यूटरों पर स्थित लाइब्रेरी को कॉल चाहते थे ये दूरस्थ प्रक्रिया कॉल विशेष रूप से जावा भाषा द्वारा अच्छी तरह से समर्थित थे। 1990 के दशक में, इंटरनेट के प्रसार के साथ, कोरबा (CORBA), कॉम (COM), और डीकॉम (DCOM) जैसे मानकों ने एपीआई सेवाओं को प्रकट करने का सबसे सामान्य तरीका बनने के लिए प्रतिस्पर्धा की।<ref name="JinSahniShevat2018">{{cite book  |first1=Brenda |last1=Jin |first2=Saurabh |last2=Sahni |first3=Amir |last3=Shevat |year=2018 |title=डिजाइनिंग वेब एपीआई|url=https://www.google.com/books/edition/Designing_Web_APIs/Dg1rDwAAQBAJ |location= |publisher=O'Reilly Media |isbn=9781492026877}}</ref>
=== 2000 के दशक ===


=== 2000 के दशक ===
2000 में यूसी इरविन में रॉय फील्डिंग के शोध प्रबंध आर्किटेक्चरल स्टाइल्स और नेटवर्क-आधारित सॉफ़्टवेयर आर्किटेक्चर के डिज़ाइन ने प्रतिनिधित्ववादी स्थिति में स्थानांतरण (आरईएसटी) को रेखांकित किया और "नेटवर्क-आधारित एप्लिकेशन प्रोग्रामिंग इंटरफेस" के विचार का वर्णन किया, जो फील्डिंग पारंपरिक "लाइब्रेरी-आधारित" एपीआई के विपरीत है।<ref>{{cite thesis |last=Fielding |first=Roy |date=2000 |title=वास्तुकला शैलियाँ और नेटवर्क-आधारित सॉफ़्टवेयर आर्किटेक्चर का डिज़ाइन|type=PhD |url=https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm |access-date=September 18, 2020}}</ref> एक्सएमएल (XML) और जेएसओएन (JSON) वेब एपीआई ने 2000 में व्यापक व्यावसायिक स्वीकृति देखी और 2022 तक जारी रही। वेब एपीआई अब एपीआई शब्द का सबसे सामान्य अर्थ है।<ref name="Lane2019" />


2000 में यूसी इरविन में रॉय फील्डिंग के निबंध आर्किटेक्चरल स्टाइल्स एंड द डिजाइन ऑफ नेटवर्क-बेस्ड सॉफ्टवेयर आर्किटेक्चर ने रिप्रेजेंटेशनल स्टेट ट्रांसफर (आरईएसटी) को रेखांकित किया और एक नेटवर्क-आधारित एप्लिकेशन प्रोग्रामिंग इंटरफेस के विचार का वर्णन किया, जो फील्डिंग पारंपरिक लाइब्रेरी-आधारित एपीआई के विपरीत है।<ref>{{cite thesis |last=Fielding |first=Roy |date=2000 |title=वास्तुकला शैलियाँ और नेटवर्क-आधारित सॉफ़्टवेयर आर्किटेक्चर का डिज़ाइन|type=PhD |url=https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm |access-date=September 18, 2020}}</ref> XML और JSON वेब APIs ने 2000 में व्यापक व्यावसायिक स्वीकृति देखी और 2022 तक जारी रही। वेब API अब API शब्द का सबसे सामान्य अर्थ है।<ref name="Lane2019">{{cite web |url=https://blog.postman.com/intro-to-apis-history-of-apis/ |title=एपीआई का परिचय: एपीआई का इतिहास|last=Lane |first=Kin |date=October 10, 2019 |website=Postman |access-date=September 18, 2020 |quote=जब आप "एपीआई" या इसके विस्तारित संस्करण "एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस" सुनते हैं, तो यह लगभग हमेशा हमारे आधुनिक दृष्टिकोण के संदर्भ में होता है, जिसमें हम JSON या XML प्रारूप में मशीन पठनीय डेटा तक पहुंच प्रदान करने के लिए HTTP का उपयोग करते हैं, अक्सर बस "वेब एपीआई" के रूप में जाना जाता है। API लगभग कंप्यूटिंग जितनी लंबी रही हैं, लेकिन आधुनिक वेब API ने 2000 के दशक की शुरुआत में आकार लेना शुरू किया था।}}</ref>
2001 में टिम बर्नर्स-ली द्वारा प्रस्तावित सिमेंटिक वेब में "सिमेंटिक एपीआई" सम्मिलित था जो एपीआई को एक सॉफ्टवेयर व्यवहार इंटरफेस के स्थान पर एक खुले वितरित डेटा इंटरफेस के रूप में पुन: प्रस्तुत करता है।<ref>{{cite journal |last1=Dotsika |first1=Fefie |date=August 2010 |title=सिमेंटिक एपीआई: सिमेंटिक वेब की ओर बढ़ रहा है|journal=International Journal of Information Management |volume=30 |issue=4 |pages=335–342 |doi=10.1016/j.ijinfomgt.2009.12.003 }}</ref> स्वामित्व इंटरफेस और एजेंट खुले इंटरफेस की तुलना में अधिक व्यापक हो गए लेकिन डेटा इंटरफेस के रूप में एपीआई के विचार ने जोर पकड़ लिया। क्योंकि वेब एपीआई का व्यापक रूप से सभी प्रकार के ऑनलाइन डेटा के आदान-प्रदान के लिए उपयोग किया जाता है, एपीआई एक व्यापक शब्द बन गया है जो इंटरनेट पर अधिकांश संचार का वर्णन करता है।<ref name="JinSahniShevat2018" /> जब इस तरह से उपयोग किया जाता है, तो एपीआई शब्द का अर्थ संचार प्रोटोकॉल शब्द के साथ अधिव्याप्त होता है।
2001 में टिम बर्नर्स-ली द्वारा प्रस्तावित सिमेंटिक वेब में सिमेंटिक एपीआई शामिल थे जो एपीआई को एक सॉफ्टवेयर व्यवहार इंटरफेस के बजाय एक खुले नवाचार, वितरित डेटा इंटरफेस के रूप में पुन: पेश करते हैं।<ref>{{cite journal |last1=Dotsika |first1=Fefie |date=August 2010 |title=सिमेंटिक एपीआई: सिमेंटिक वेब की ओर बढ़ रहा है|journal=International Journal of Information Management |volume=30 |issue=4 |pages=335–342 |doi=10.1016/j.ijinfomgt.2009.12.003 }}</ref> मालिकाना सॉफ्टवेयर इंटरफेस और एजेंट खुले वाले की तुलना में अधिक व्यापक हो गए, लेकिन डेटा इंटरफेस के रूप में एपीआई के विचार ने जोर पकड़ लिया। क्योंकि वेब एपीआई व्यापक रूप से ऑनलाइन सभी प्रकार के डेटा का आदान-प्रदान करने के लिए उपयोग किया जाता है, एपीआई एक व्यापक शब्द बन गया है जो इंटरनेट पर अधिकांश संचार का वर्णन करता है।<ref name="JinSahniShevat2018" />जब इस तरह से उपयोग किया जाता है, तो एपीआई शब्द शब्द संचार प्रोटोकॉल के अर्थ में ओवरलैप होता है।


== उपयोग ==
== उपयोग ==


=== पुस्तकालय और चौखटे ===
=== लाइब्रेरी और रूपरेखा ===
लाइब्रेरी (कंप्यूटिंग) का इंटरफ़ेस एक प्रकार का एपीआई है। एपीआई अपेक्षित व्यवहार (एक विनिर्देश) का वर्णन करता है और निर्धारित करता है, जबकि पुस्तकालय नियमों के इस सेट का वास्तविक कार्यान्वयन है।
सॉफ्टवेयर लाइब्रेरी का इंटरफ़ेस एक प्रकार का एपीआई है। एपीआई "अपेक्षित व्यवहार" (एक विनिर्देश) का वर्णन करता और निर्धारित करता है, जबकि लाइब्रेरी नियमों के इस सेट का "वास्तविक कार्यान्वयन" है।


एक ही प्रोग्रामिंग इंटरफेस को साझा करने वाले विभिन्न पुस्तकालयों के रूप में एक एकल एपीआई में कई कार्यान्वयन (या कोई नहीं, सार हो सकता है) हो सकता है।
एक ही प्रोग्रामिंग इंटरफेस को साझा करने वाली विभिन्न लाइब्रेरी के रूप में एक एकल एपीआई में कई कार्यान्वयन (या कोई नहीं, निराकार होने) हो सकते हैं।


एपीआई को इसके कार्यान्वयन से अलग करने से एक भाषा में लिखे प्रोग्राम को दूसरी भाषा में लिखे गए पुस्तकालय का उपयोग करने की अनुमति मिल सकती है। उदाहरण के लिए, क्योंकि स्काला (प्रोग्रामिंग लैंग्वेज) और जावा (प्रोग्रामिंग लैंग्वेज) संगत बायटेकोड के लिए संकलित हैं, स्काला डेवलपर्स किसी भी जावा एपीआई का लाभ उठा सकते हैं।<ref name="OderskySpoonVenners8">{{Cite web |url=http://www.artima.com/pins1ed/combining-scala-and-java.html |title=स्काला और जावा का संयोजन|last1=Odersky |first1=Martin |last2=Spoon |first2=Lex |date=10 December 2008 |website=www.artima.com |access-date=29 July 2016 |last3=Venners |first3=Bill}}</ref>
एपीआई को इसके कार्यान्वयन से अलग करने से एक भाषा में लिखे गए प्रोग्राम को दूसरी भाषा में लिखी गई लाइब्रेरी का उपयोग करने की अनुमति मिल सकती है। उदाहरण के लिए, क्योंकि स्काला और जावा संगत बाइटकोड को संकलित करते हैं, स्काला डेवलपर्स किसी भी जावा एपीआई का लाभ उठा सकते हैं।<ref name="OderskySpoonVenners8">{{Cite web |url=http://www.artima.com/pins1ed/combining-scala-and-java.html |title=स्काला और जावा का संयोजन|last1=Odersky |first1=Martin |last2=Spoon |first2=Lex |date=10 December 2008 |website=www.artima.com |access-date=29 July 2016 |last3=Venners |first3=Bill}}</ref>
एपीआई का उपयोग शामिल प्रोग्रामिंग भाषा के प्रकार के आधार पर भिन्न हो सकता है।
लुआ (प्रोग्रामिंग लैंग्वेज) जैसी प्रक्रियात्मक प्रोग्रामिंग के लिए एक एपीआई में मुख्य रूप से कोड को निष्पादित करने, डेटा में हेरफेर करने या त्रुटियों को संभालने के लिए बुनियादी रूटीन शामिल हो सकते हैं, जबकि ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग के लिए एपीआई। ऑब्जेक्ट-ओरिएंटेड भाषा, जैसे जावा, एक प्रदान करेगी। कक्षाओं और इसकी कक्षा विधियों का विनिर्देश।<ref>{{cite journal |last1=de Figueiredo |first1=Luiz Henrique |author-link2=Roberto Ierusalimschy |last2=Ierusalimschy |first2=Roberto |last3=Filho |first3=Waldemar Celes |title=अनुप्रयोगों के विस्तार के लिए एक भाषा का डिजाइन और कार्यान्वयन|url=https://www.researchgate.net/publication/2778436 |journal=TeCGraf Grupo de Tecnologia Em Computacao Grafica |year=1994 |pages=273–284 |citeseerx=10.1.1.47.5194 |s2cid=59833827 |access-date=29 July 2016}}</ref><ref name="Sintes16">{{cite web |last1=Sintes |first1=Tony |date=2001-07-13 |df=dmy |url=https://www.infoworld.com/article/2077392/just-what-is-the-java-api-anyway.html |title=वैसे भी जावा एपीआई क्या है?|website=[[JavaWorld]] |access-date=2020-07-18}}</ref> {{anchor|Hyrums}}हिरुम का नियम <ref>{{Cite book|editor-last=Winters|editor-first=Titus |title=Google पर सॉफ़्टवेयर इंजीनियरिंग: समय के साथ प्रोग्रामिंग से सीखे गए पाठ|date=2020|editor2=Tom Manshreck |editor3=Hyrum Wright|isbn=9781492082798 |location=Sebastopol, CA|oclc=1144086840}}</ref> बताता है कि एपीआई के उपयोगकर्ताओं की पर्याप्त संख्या के साथ, इससे कोई फर्क नहीं पड़ता कि आप अनुबंध में क्या वादा करते हैं: आपके सिस्टम के सभी अवलोकन योग्य व्यवहार किसी के द्वारा निर्भर होंगे। इस बीच, कई अध्ययनों से पता चलता है कि एपीआई का उपयोग करने वाले अधिकांश एप्लिकेशन एपीआई के एक छोटे से हिस्से का उपयोग करते हैं।<ref>{{Cite conference |last1=Mastrangelo|first1=Luis|last2=Ponzanelli|first2=Luca|last3=Mocci|first3=Andrea|last4=Lanza|first4=Michele|last5=Hauswirth|first5=Matthias|last6=Nystrom|first6=Nathaniel|date=2015-10-23|title=अपने जोखिम पर प्रयोग करें: जंगली में जावा असुरक्षित एपीआई|book-title=Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications|series=OOPSLA 2015|location=New York, NY, USA|publisher=Association for Computing Machinery|pages=695–710|doi=10.1145/2814270.2814313|isbn=978-1-4503-3689-5}}</ref> एपीआई का उपयोग वास्तव में उपयोगकर्ताओं की संख्या के साथ-साथ एपीआई की लोकप्रियता के आधार पर भिन्न होता है।<ref>{{Cite journal|last1=Harrand|first1=Nicolas|last2=Benelallam|first2=Amine|last3=Soto-Valero|first3=César|last4=Bettega|first4=François|last5=Barais|first5=Olivier|last6=Baudry|first6=Benoit|date=2022-02-01|title=एपीआई सौंदर्य ग्राहकों की नजर में है: 2.2 मिलियन मावेन निर्भरता क्लाइंट-एपीआई उपयोगों के स्पेक्ट्रम को प्रकट करती है|journal=Journal of Systems and Software|language=en|volume=184|pages=111134|doi=10.1016/j.jss.2021.111134 |doi-access=free |issn=0164-1212}}</ref>
भाषा बंधन भी एपीआई हैं। एक भाषा की विशेषताओं और क्षमताओं को दूसरी भाषा में लागू किए गए इंटरफ़ेस से मैप करके, एक भाषा बंधन किसी अन्य भाषा में विकसित होने पर एक भाषा में लिखी गई लाइब्रेरी या सेवा का उपयोग करने की अनुमति देता है।<ref name="Emery">{{Cite web |url=https://washingtonindependent.com/what-you-should-know-about-standards-apis-interfaces-and-bindings/ |title=आपको मानकों, एपीआई, इंटरफेस और बाइंडिंग के बारे में क्या पता होना चाहिए|last=Mclaughlin |first=Stefano |publisher=washingtonindependent.com|date= 20 December 1996}}</ref>
SWIG और F2PY जैसे उपकरण, एक फोरट्रान-टू-पायथन (प्रोग्रामिंग भाषा) इंटरफ़ेस जनरेटर, ऐसे इंटरफेस के निर्माण की सुविधा प्रदान करते हैं।<ref>{{Cite web |url=http://www.f2py.org/ |title=फ2प्य.ऑर्ग|publisher=फ2प्य.ऑर्ग|access-date=2011-12-18}}</ref>
एक एपीआई एक फ्रेमवर्क (कंप्यूटर साइंस) से भी संबंधित हो सकता है: एक फ्रेमवर्क कई एपीआई को लागू करने वाले कई पुस्तकालयों पर आधारित हो सकता है, लेकिन एक एपीआई के सामान्य उपयोग के विपरीत, ढांचे में निर्मित व्यवहार की पहुंच इसकी सामग्री का विस्तार करके मध्यस्थता की जाती है। नए वर्गों के साथ ढांचे में ही प्लग किया गया।


इसके अलावा, नियंत्रण का समग्र कार्यक्रम प्रवाह कॉल करने वाले के नियंत्रण से बाहर हो सकता है और नियंत्रण के व्युत्क्रम या इसी तरह के तंत्र द्वारा ढांचे के हाथों में हो सकता है।<ref>{{cite web
एपीआई का उपयोग सम्मिलित प्रोग्रामिंग भाषा के प्रकार के आधार पर भिन्न हो सकता है। लुआ जैसी प्रक्रियात्मक भाषा के लिए एक एपीआई में मुख्य रूप से कोड को निष्पादित करने, डेटा में हेरफेर करने या त्रुटियों को संभालने के लिए बुनियादी दिनचर्या सम्मिलित हो सकती हैं, जबकि ऑब्जेक्ट-ओरिएंटेड भाषा के लिए एक एपीआई, जैसे कि जावा, कक्षाओं और इसकी कक्षा विधियों का एक विनिर्देश प्रदान करेगा।<ref>{{cite journal |last1=de Figueiredo |first1=Luiz Henrique |author-link2=Roberto Ierusalimschy |last2=Ierusalimschy |first2=Roberto |last3=Filho |first3=Waldemar Celes |title=अनुप्रयोगों के विस्तार के लिए एक भाषा का डिजाइन और कार्यान्वयन|url=https://www.researchgate.net/publication/2778436 |journal=TeCGraf Grupo de Tecnologia Em Computacao Grafica |year=1994 |pages=273–284 |citeseerx=10.1.1.47.5194 |s2cid=59833827 |access-date=29 July 2016}}</ref><ref name="Sintes16">{{cite web |last1=Sintes |first1=Tony |date=2001-07-13 |df=dmy |url=https://www.infoworld.com/article/2077392/just-what-is-the-java-api-anyway.html |title=वैसे भी जावा एपीआई क्या है?|website=[[JavaWorld]] |access-date=2020-07-18}}</ref> हिरुम का नियम<ref>{{Cite book|editor-last=Winters|editor-first=Titus |title=Google पर सॉफ़्टवेयर इंजीनियरिंग: समय के साथ प्रोग्रामिंग से सीखे गए पाठ|date=2020|editor2=Tom Manshreck |editor3=Hyrum Wright|isbn=9781492082798 |location=Sebastopol, CA|oclc=1144086840}}</ref> कहता है कि "एपीआई के उपयोगकर्ताओं की पर्याप्त संख्या के साथ इससे कोई फर्क नहीं पड़ता कि आप अनुबंध में क्या वादा करते हैं- आपकी प्रणाली के सभी अवलोकन योग्य व्यवहार किसी के द्वारा निर्भर होंगे।" इस बीच, कई अध्ययनों से पता चलता है कि एपीआई का उपयोग करने वाले अधिकांश एप्लिकेशन एपीआई के एक छोटे से हिस्से का उपयोग करते हैं।<ref>{{Cite conference |last1=Mastrangelo|first1=Luis|last2=Ponzanelli|first2=Luca|last3=Mocci|first3=Andrea|last4=Lanza|first4=Michele|last5=Hauswirth|first5=Matthias|last6=Nystrom|first6=Nathaniel|date=2015-10-23|title=अपने जोखिम पर प्रयोग करें: जंगली में जावा असुरक्षित एपीआई|book-title=Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications|series=OOPSLA 2015|location=New York, NY, USA|publisher=Association for Computing Machinery|pages=695–710|doi=10.1145/2814270.2814313|isbn=978-1-4503-3689-5}}</ref> एपीआई का उपयोग वास्तव में उपयोगकर्ताओं की संख्या के साथ-साथ एपीआई की लोकप्रियता पर निर्भर करता है।<ref>{{Cite journal|last1=Harrand|first1=Nicolas|last2=Benelallam|first2=Amine|last3=Soto-Valero|first3=César|last4=Bettega|first4=Françoi