एपीआई: Difference between revisions
From Vigyanwiki
No edit summary |
|||
| (8 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| | {{redirect|Api.php|विकिपीडिया एपीआई|विशेष: एपीआई हेल्प|selfref=ट्रू}} | ||
[[File:Screenshot of NASA API documentation.png|thumb|नासा द्वारा लिखित वेब एपीआई प्रलेखन का स्क्रीनशॉट।]] | [[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">{{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="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> | ||
| Line 16: | Line 16: | ||
=== 1940 और 1950 के दशक === | === 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> | विल्क्स एंड व्हीलर की 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> | ||
[[File:Univac 1108 Census Bureau.jpg|thumb|300px| | [[File:Univac 1108 Census Bureau.jpg|thumb|300px|हालांकि एपीआई शब्द गढ़ने वाले लोग यूनीवैक 1108 पर सॉफ्टवेयर कार्यान्वयन कर रहे थे, उनके एपीआई का लक्ष्य हार्डवेयर स्वतंत्र प्रोग्राम को संभव बनाना था।<ref name="CottonGreatorex1968" />]] | ||
=== 1960 और 1970 के दशक === | === 1960 और 1970 के दशक === | ||
| Line 26: | Line 26: | ||
शब्द "एप्लिकेशन प्रोग्राम इंटरफ़ेस" (बिना -आईएनजी प्रत्यय के) पहली बार 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> | शब्द "एप्लिकेशन प्रोग्राम इंटरफ़ेस" (बिना -आईएनजी प्रत्यय के) पहली बार 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 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" /> | ||
इस अवलोकन ने एपीआई का नेतृत्व किया जो सभी प्रकार की प्रोग्रामिंग का समर्थन करता था, न कि केवल एप्लिकेशन प्रोग्रामिंग का। | इस अवलोकन ने एपीआई का नेतृत्व किया जो सभी प्रकार की प्रोग्रामिंग का समर्थन करता था, न कि केवल एप्लिकेशन प्रोग्रामिंग का। | ||
| Line 38: | Line 38: | ||
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) वेब एपीआई ने 2000 में व्यापक व्यावसायिक स्वीकृति देखी और 2022 तक जारी रही। वेब एपीआई अब एपीआई शब्द का सबसे सामान्य अर्थ है।<ref name="Lane2019" /> | ||
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" /> जब इस तरह से उपयोग किया जाता है, तो एपीआई शब्द का अर्थ संचार प्रोटोकॉल शब्द के साथ अधिव्याप्त होता है। | ||
== उपयोग == | |||
=== लाइब्रेरी और रूपरेखा === | === लाइब्रेरी और रूपरेखा === | ||
| Line 84: | Line 86: | ||
}}</ref> | }}</ref> | ||
एपीआई एक एप्लिकेशन बाइनरी इंटरफ़ेस (एबीआई) से अलग है जिसमें एपीआई स्रोत कोड आधारित है जबकि एबीआई बाइनरी आधारित है। उदाहरण के लिए, पीओएसआईएक्स (POSIX) एपीआई प्रदान करता है जबकि लिनक्स मानक आधार एबीआई प्रदान करता है।<ref>{{cite web| | |||
url=http://www.linuxfoundation.org/collaborate/workgroups/lsb/lsb-introduction| | url=http://www.linuxfoundation.org/collaborate/workgroups/lsb/lsb-introduction| | ||
title=LSB Introduction| | title=LSB Introduction| | ||
| Line 194: | Line 196: | ||
2010 में, ओरेकल कॉर्पोरेशन ने एंड्रॉयड ऑपरेटिंग सिस्टम में अंतर्निहित किए गए जावा के एक नए कार्यान्वयन को वितरित करने के लिए गूगल पर मुकदमा दायर किया।<ref>{{Cite web |url=http://www.drdobbs.com/jvm/232901227 |title=ओरेकल और प्रोग्रामिंग का अंत जैसा हम जानते हैं|date=2012-05-01 |publisher=DrDobbs |access-date=2012-05-09}}</ref> गूगल ने जावा एपीआई को पुन: उत्पन्न करने के लिए कोई अनुमति प्राप्त नहीं की थी, हालाँकि समान ओपेन जेडीके (OpenJDK) प्रोजेक्ट को अनुमति दी गई थी। गूगल ने अपने एपीआई के लिए एक लाइसेंस के लिए बातचीत करने के लिए ओरेकल से संपर्क किया था, लेकिन भरोसे के मुद्दों के कारण इसे ठुकरा दिया गया था। असहमति के बावजूद, गूगल ने ओरेकल के कोड का उपयोग करना चुना। न्यायाधीश विलियम अलसुप ने ओरेकल बनाम गूगल मामले में फैसला सुनाया कि एपीआई को अमेरिका में कॉपीराइट नहीं किया जा सकता है और ओरेकल की जीत से "प्रतीकों के कार्यात्मक सेट" के लिए व्यापक रूप से कॉपीराइट सुरक्षा का विस्तार होगा और सरल सॉफ़्टवेयर कमांड के कॉपीराइट की अनुमति होगी। | 2010 में, ओरेकल कॉर्पोरेशन ने एंड्रॉयड ऑपरेटिंग सिस्टम में अंतर्निहित किए गए जावा के एक नए कार्यान्वयन को वितरित करने के लिए गूगल पर मुकदमा दायर किया।<ref>{{Cite web |url=http://www.drdobbs.com/jvm/232901227 |title=ओरेकल और प्रोग्रामिंग का अंत जैसा हम जानते हैं|date=2012-05-01 |publisher=DrDobbs |access-date=2012-05-09}}</ref> गूगल ने जावा एपीआई को पुन: उत्पन्न करने के लिए कोई अनुमति प्राप्त नहीं की थी, हालाँकि समान ओपेन जेडीके (OpenJDK) प्रोजेक्ट को अनुमति दी गई थी। गूगल ने अपने एपीआई के लिए एक लाइसेंस के लिए बातचीत करने के लिए ओरेकल से संपर्क किया था, लेकिन भरोसे के मुद्दों के कारण इसे ठुकरा दिया गया था। असहमति के बावजूद, गूगल ने ओरेकल के कोड का उपयोग करना चुना। न्यायाधीश विलियम अलसुप ने ओरेकल बनाम गूगल मामले में फैसला सुनाया कि एपीआई को अमेरिका में कॉपीराइट नहीं किया जा सकता है और ओरेकल की जीत से "प्रतीकों के कार्यात्मक सेट" के लिए व्यापक रूप से कॉपीराइट सुरक्षा का विस्तार होगा और सरल सॉफ़्टवेयर कमांड के कॉपीराइट की अनुमति होगी। | ||
{{blockquote| | {{blockquote|ओरेकल के दावे को स्वीकार करने के लिए किसी को भी कमांड की एक प्रणाली को चलाने के लिए कोड के एक संस्करण को कॉपीराइट करने की अनुमति देना होगा और इस तरह अन्य सभी को इसके अलग-अलग संस्करणों को लिखने से रोकना होगा ताकि सभी या एक ही कमांड को पूरा किया जा सके।<ref>{{Cite web |url=http://www.tgdaily.com/business-and-law-features/63756-apis-cant-be-copyrighted-says-judge-in-oracle-case |title=APIs Can't be Copyrighted Says Judge in Oracle Case |date=2012-06-01 |publisher=TGDaily |access-date=2012-12-06}}</ref><ref>{{cite web | ||
| url = https://www.wired.com/wiredenterprise/wp-content/uploads/2012/05/Judge-Alsup-Ruling-on-Copyrightability-of-APIs.pdf | | url = https://www.wired.com/wiredenterprise/wp-content/uploads/2012/05/Judge-Alsup-Ruling-on-Copyrightability-of-APIs.pdf | ||
| title = Oracle America, Inc. vs. Google Inc. | | title = Oracle America, Inc. vs. Google Inc. | ||
| Line 200: | Line 202: | ||
| publisher = [[Wired (magazine)|Wired]] | | publisher = [[Wired (magazine)|Wired]] | ||
}}</ref>}} | }}</ref>}} | ||
अलसुप के फैसले को 2014 में | |||
2016 में, दो सप्ताह के परीक्षण के बाद, एक जूरी ने निर्धारित किया कि जावा एपीआई के | अलसुप के फैसले को 2014 में संघीय सर्किट के लिए अपील की अदालत में अपील पर पलट दिया गया था, हालांकि इस तरह के एपीआई के उपयोग से उचित उपयोग का सवाल अनसुलझा रह गया था।<ref>{{Cite web|title=Oracle Am., Inc. बनाम Google Inc., संख्या 13-1021, Fed. सर्क। 2014|url=https://law.justia.com/cases/federal/appellate-courts/cafc/13-1021/13-1021-2014-05-09.html|url-status=live|archive-url=https://web.archive.org/web/20141010070718/http://law.justia.com:80/cases/federal/appellate-courts/cafc/13-1021/13-1021-2014-05-09.html |archive-date=2014-10-10 }}</ref><ref>{{Cite news |last=Rosenblatt, Seth |url=https://www.cnet.com/news/court-sides-with-oracle-over-android-in-java-patent-appeal/ |title=जावा पेटेंट अपील में Android पर Oracle के साथ कोर्ट का पक्ष|date=May 9, 2014 |work=CNET |access-date=2014-05-10}}</ref> | ||
इस मामले का फैसला सुप्रीम कोर्ट ने 6-2 के फैसले के साथ | |||
2016 में, दो सप्ताह के परीक्षण के बाद, एक जूरी ने निर्धारित किया कि जावा एपीआई के गूगल के पुन: कार्यान्वयन ने उचित उपयोग का गठन किया, लेकिन ओरेकल ने निर्णय की अपील करने की कसम खाई।<ref>{{Cite web |url=https://arstechnica.com/tech-policy/2016/05/google-wins-trial-against-oracle-as-jury-finds-android-is-fair-use/ |title=Google Oracle को हराता है - Android Java API का "उचित उपयोग" करता है|date=2016-05-26 |website=Ars Technica |access-date=2016-07-28}}</ref> ओरेकल ने अपनी अपील पर संघीय सर्किट के लिए अपील की अदालत के फैसले के साथ जीत हासिल की कि गूगल द्वारा एपीआई का उपयोग उचित उपयोग के लिए योग्य नहीं था।<ref name="bbn march2018">{{Cite web |url=https://www.bloomberg.com/news/articles/2018-03-27/oracle-wins-revival-of-billion-dollar-case-against-google |title=ऑरेकल ने गूगल के खिलाफ बिलियन-डॉलर केस का पुनरुद्धार जीता|last=Decker |first=Susan |date=March 27, 2018 |website=[[Bloomberg Businessweek]] |access-date=March 27, 2018}}</ref> 2019 में, गूगल ने संयुक्त राज्य अमेरिका के सर्वोच्च न्यायालय में कॉपीराइट योग्यता और उचित उपयोग दोनों के निर्णयों पर अपील की, और सर्वोच्च न्यायालय ने समीक्षा की अनुमति दी।<ref name="ars Jan2019">{{Cite web |url=https://arstechnica.com/tech-policy/2019/01/google-asks-supreme-court-to-overrule-disastrous-ruling-on-api-copyrights/ |title=Google ने सर्वोच्च न्यायालय से एपीआई कॉपीराइट पर विनाशकारी फैसले को रद्द करने के लिए कहा|last=Lee |first=Timothy |date=January 25, 2019 |website=[[Ars Technica]] |access-date=February 8, 2019}}</ref> कोविड-19 महामारी के कारण, मामले की मौखिक सुनवाई अक्टूबर 2020 तक विलंबित हो गई थी।<ref>{{Cite web|last=vkimber|date=2020-09-28|title=Google LLC v. Oracle अमेरिका, Inc.|url=https://www.law.cornell.edu/supct/cert/18-956|access-date=2021-03-06|website=LII / Legal Information Institute|language=en}}</ref> | |||
इस मामले का फैसला सुप्रीम कोर्ट ने 6-2 के फैसले के साथ गूगल के पक्ष में दिया था। न्यायमूर्ति स्टीफन ब्रेयर ने अदालत की राय दी और एक बिंदु पर उल्लेख किया कि "घोषित कोड कॉपीराइट के मूल से अधिकांश कंप्यूटर प्रोग्रामों की तुलना में आगे कॉपीराइट योग्य है।" इसका मतलब यह है कि कॉपीराइट सुरक्षा के मामले में एपीआई में उपयोग किए गए कोड उपन्यासों की तुलना में शब्दकोशों के समान हैं।<ref>{{Cite web|date=April 5, 2021|title=संयुक्त राज्य अमेरिका का सर्वोच्च न्यायालय, नंबर 18–956, GOOGLE LLC, याचिकाकर्ता बनाम Oracle अमेरिका, INC।|url=https://www.supremecourt.gov/opinions/20pdf/18-956_d18f.pdf}}</ref> | |||
== उदाहरण == | == उदाहरण == | ||
{{Main category| | {{Main category|एप्लिकेशन प्रोग्रामिंग इंटरफेस}} | ||
{{Div col}} | {{Div col}} | ||
* SCSI डिवाइस इंटरफेसिंग के लिए | * एससीएसआई (SCSI) डिवाइस इंटरफेसिंग के लिए एएसपीआई (ASPI)। | ||
* मैकिंटोश के लिए कोको | * मैकिंटोश के लिए कोको और कार्बन। | ||
* माइक्रोसॉफ्ट विंडोज के लिए | * माइक्रोसॉफ्ट विंडोज के लिए डायरेक्टएक्स। | ||
* | * ईएचएलएलएपीआई (EHLLAPI)। | ||
* जावा | * जावा एपीआई। | ||
* माइक्रोसॉफ्ट विंडोज के लिए | * माइक्रोसॉफ्ट विंडोज के लिए ओडीबीसी (ODBC)। | ||
* ओपनएएल क्रॉस- | * ओपनएएल (OpenAL) क्रॉस-प्लेटफ़ॉर्म ध्वनि एपीआई। | ||
* सीपीयू और जीपीयू के लिए सामान्य प्रयोजन कंप्यूटिंग के लिए ओपनसीएल क्रॉस-प्लेटफॉर्म | * सीपीयू (CPU) और जीपीयू (GPU) के लिए सामान्य प्रयोजन कंप्यूटिंग के लिए ओपनसीएल (OpenCL) क्रॉस-प्लेटफॉर्म एपीआई। | ||
* ओपनजीएल क्रॉस- | * ओपनजीएल (OpenGL) क्रॉस-प्लेटफार्म ग्राफिक्स एपीआई। | ||
* ओपनएमपी एपीआई जो यूनिक्स और माइक्रोसॉफ्ट विंडोज प्लेटफॉर्म | * ओपनएमपी एपीआई जो यूनिक्स और माइक्रोसॉफ्ट विंडोज प्लेटफॉर्म समेत कई आर्किटेक्चर पर सी (C), सी ++ (C++) और फोरट्रान में मल्टी-प्लेटफार्म साझा मेमोरी मल्टीप्रोसेसिंग प्रोग्रामिंग का समर्थन करता है। | ||
* सर्वर | * सर्वर एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस (एसएपीआई)। | ||
* | * सरल डायरेक्टमीडिया परत (एसडीएल)।{{Div col end}} | ||
{{Div col end}} | |||
== यह भी देखें == | == यह भी देखें == | ||
| Line 228: | Line 232: | ||
* कॉलिंग कन्वेंशन | * कॉलिंग कन्वेंशन | ||
*कॉमन ऑब्जेक्ट रिक्वेस्ट ब्रोकर आर्किटेक्चर (कॉरबा) | *कॉमन ऑब्जेक्ट रिक्वेस्ट ब्रोकर आर्किटेक्चर (कॉरबा) | ||
* | *एप्लिकेशन वर्चुअल मशीनों की तुलना | ||
* | *लेख ऑब्जेक्ट मॉडल (DOM) | ||
*डबल-चांस फंक्शन | *डबल-चांस फंक्शन | ||
* विदेशी फ़ंक्शन इंटरफ़ेस | * विदेशी फ़ंक्शन इंटरफ़ेस | ||
*आगे और पीछे के सिरे | *आगे और पीछे के सिरे | ||
* इंटरफ़ेस (कंप्यूटिंग) | * इंटरफ़ेस (कंप्यूटिंग) | ||
* इंटरफ़ेस नियंत्रण | * इंटरफ़ेस नियंत्रण लेख | ||
*3डी ग्राफिक्स एपीआई की सूची | *3डी ग्राफिक्स एपीआई की सूची | ||
* माइक्रोसर्विसेज | * माइक्रोसर्विसेज | ||
* नाम मैंगलिंग | * नाम मैंगलिंग | ||
* ओपन एपीआई | * ओपन एपीआई | ||
* ओपन सर्विस इंटरफेस | * ओपन सर्विस इंटरफेस परिभाषाएँ | ||
* पार्सिंग | * पार्सिंग | ||
* प्लग-इन | * प्लग-इन | ||
* आरएएमएल (सॉफ्टवेयर) | * आरएएमएल (सॉफ्टवेयर) | ||
*सॉफ्टवेयर डेवलपमेंट किट (एसडीके) | *सॉफ्टवेयर डेवलपमेंट किट (एसडीके) | ||
* वेब एपीआई | * संरचित वित्तीय संदेश प्रणाली | ||
*वेब एपीआई | |||
*वेब सामग्री विक्रेता | *वेब सामग्री विक्रेता | ||
*एक्सपीकॉम | *एक्सपीकॉम | ||
| Line 257: | Line 262: | ||
* [https://www.supremec | |||