एपीआई: Difference between revisions
From Vigyanwiki
No edit summary |
|||
| 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 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> एक एपीआई डेटाबेस प्रबंधन प्रणालियों के लिए एएनएसआई/स्पार्क रूपरेखा का हिस्सा बन गया। इस रूपरेखा ने एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस को अन्य इंटरफेस, जैसे कि | डेटाबेस के क्षेत्र में इस शब्द का परिचय सी.जे. डेट<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 96: | Line 96: | ||
access-date=2009-06-04}}</ref> | access-date=2009-06-04}}</ref> | ||
=== रिमोट एपीआई === | === रिमोट एपीआई === | ||
रिमोट एपीआई डेवलपर्स को प्रोटोकॉल के माध्यम से रिमोट संसाधनों में हेरफेर करने की अनुमति देते हैं, संचार के लिए विशिष्ट मानक जो भाषा या प्लेटफॉर्म की परवाह किए बिना विभिन्न तकनीकों को एक साथ काम करने की अनुमति देते हैं। उदाहरण के लिए, जावा डाटाबेस सम्बन्ध एपीआई डेवलपर्स को कार्यों के एक ही सेट के साथ कई अलग-अलग प्रकार के डेटाबेस को जांच करने की अनुमति देता है, जबकि जावा रिमोट विधि आह्वान एपीआई जावा रिमोट विधि प्रोटोकॉल का उपयोग करता है जो रिमोट रूप से संचालित होने वाले कार्यों के आह्वान की अनुमति देता है। लेकिन डेवलपर को स्थानीय दिखाई देते हैं।<ref name="Bierhoff9">{{Cite journal |last=Bierhoff |first=Kevin |date=23 April 2009 |title=ऑब्जेक्ट-ओरिएंटेड सॉफ़्टवेयर में एपीआई प्रोटोकॉल अनुपालन|url=https://www.cs.cmu.edu/~kbierhof/thesis/bierhoff-thesis.pdf |journal=CMU Institute for Software Research |access-date=29 July 2016}}</ref><ref name="Wilson16">{{cite web |last1=Wilson |first1=M. Jeff |date=2000-11-10 |df=dmy |url=https://www.infoworld.com/article/2076234/get-smart-with-proxies-and-rmi.html |title=प्रॉक्सी और आरएमआई के साथ स्मार्ट बनें|work=[[JavaWorld]] |access-date=2020-07-18}}</ref> | |||
उदाहरण के लिए, जावा डाटाबेस | |||
इसलिए, रिमोट एपीआई ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में ऑब्जेक्ट को निराकार बनाए रखने में उपयोगी होते हैं प्रतिनिधि संबंधी ऑब्जेक्ट पर स्थानीय रूप से निष्पादित एक विधि कॉल, रिमोटिंग प्रोटोकॉल का उपयोग करके रिमोट ऑब्जेक्ट पर संबंधित विधि को आमंत्रित करता है, और परिणाम को स्थानीय रूप से वापसी मान के रूप में उपयोग करने के लिए प्राप्त करता है। | |||
प्रतिनिधि संबंधी ऑब्जेक्ट के एक संशोधन के परिणामस्वरूप रिमोट ऑब्जेक्ट का एक संगत संशोधन भी होगा।<ref name="AdvancedCorba">{{cite book | |||
|last1 = Henning | |last1 = Henning | ||
|first1 = Michi | |first1 = Michi | ||
| Line 114: | Line 114: | ||
}}</ref> | }}</ref> | ||
=== वेब एपीआई === | === वेब एपीआई === | ||
{{Main| | {{Main|वेब एपीआई}} | ||
एक उदाहरण एक शिपिंग कंपनी एपीआई हो सकती है जिसे शिपिंग सेवाओं को ऑर्डर करने की सुविधा के लिए ईकामर्स-केंद्रित वेबसाइट में जोड़ा जा सकता है और साइट डेवलपर को वेब डेटाबेस में शिपर की दर तालिका में प्रवेश किए बिना स्वचालित रूप से वर्तमान शिपिंग दरों को | वेब एपीआई हाइपरटेक्स्ट ट्रांसफर प्रोटोकॉल (एचटीटीपी) का उपयोग कर क्लाइंट डिवाइस (मोबाइल फोन, लैपटॉप इत्यादि) से वेब सर्वर तक पहुंचने वाली सेवा है। क्लाइंट डिवाइस एचटीटीपी (HTTP) अनुरोध के रूप में भेजते हैं, और प्रायः जावास्क्रिप्ट ऑब्जेक्ट नोटेशन (JSON) या एक्स्टेंसिबल मार्कअप लैंग्वेज (XML) प्रारूप में प्रतिक्रिया संदेश के साथ मिलती हैं। डेवलपर्स प्रायः वेब एपीआई का उपयोग उस सर्वर से डेटा के एक विशिष्ट सेट के लिए सर्वर जांच करने के लिए करते हैं। | ||
उदाहरण एक शिपिंग कंपनी एपीआई हो सकती है जिसे शिपिंग सेवाओं को ऑर्डर करने की सुविधा के लिए ईकामर्स-केंद्रित वेबसाइट में जोड़ा जा सकता है और साइट डेवलपर को वेब डेटाबेस में शिपर की दर तालिका में प्रवेश किए बिना स्वचालित रूप से वर्तमान शिपिंग दरों को सम्मिलित किया जा सकता है। जबकि "वेब एपीआई" ऐतिहासिक रूप से वेब सेवा का वस्तुतः पर्याय रहा है, हाल की प्रवृत्ति (तथाकथित वेब 2.0) सिंपल ऑब्जेक्ट एक्सेस प्रोटोकॉल (SOAP) आधारित वेब सेवाओं और सेवा-उन्मुख आर्किटेक्चर (SOA) से अधिक प्रत्यक्ष प्रतिनिधित्वात्मक स्थिति स्थानांतरण (REST), शैली वेब संसाधन और संसाधन-उन्मुख आर्किटेक्चर (ROA) की ओर बढ़ रही है।<ref>{{cite web | |||
|first = Djamal | |first = Djamal | ||
|last = Benslimane | |last = Benslimane | ||
| Line 132: | Line 133: | ||
|archive-date = 2011-09-28 | |archive-date = 2011-09-28 | ||
|url-status = dead | |url-status = dead | ||
}}</ref> इस प्रवृत्ति का एक हिस्सा सिमेंटिक वेब | }}</ref> इस प्रवृत्ति का एक हिस्सा सिमेंटिक वेब गतिविधि से संसाधन विवरण रूपरेखा (RDF) से संबंधित है, जो वेब-आधारित ऑन्टोलॉजी इंजीनियरिंग तकनीकों को बढ़ावा देने के लिए एक अवधारणा है। वेब एपीआई मैशअप के रूप में ज्ञात नए अनुप्रयोगों में कई एपीआई के संयोजन की अनुमति देता है।<ref> | ||
{{citation | {{citation | ||
|first = James | |first = James | ||
| Line 141: | Line 142: | ||
|date = 2008-04-23 | |date = 2008-04-23 | ||
}}</ref> | }}</ref> | ||
सोशल मीडिया स्पेस में, वेब एपीआई ने वेब समुदायों को समुदायों और | |||
</ref> उदाहरण के लिए, ट्विटर का रेस्ट एपीआई डेवलपर्स को कोर ट्विटर डेटा तक पहुंचने की अनुमति देता है और सर्च एपीआई डेवलपर्स को ट्विटर सर्च और ट्रेंड डेटा के साथ | सोशल मीडिया स्पेस में, वेब एपीआई ने वेब समुदायों को समुदायों और एप्लिकेशन के बीच सामग्री और डेटा साझा करने की सुविधा प्रदान करने की अनुमति दी है। इस प्रकार, एक स्थान पर गतिशील रूप से बनाई गई सामग्री को वेब पर कई स्थानों पर पोस्ट और अपडेट किया जा सकता है।<ref name="Parr16">{{cite web|last1=Parr|first1=Ben|title=सोशल मीडिया एपीआई का विकास|url=http://mashable.com/2009/05/21/social-media-api/|website=Mashable|date=21 May 2009|access-date=26 July 2016}} | ||
</ref> उदाहरण के लिए, ट्विटर का रेस्ट एपीआई डेवलपर्स को कोर ट्विटर डेटा तक पहुंचने की अनुमति देता है और सर्च एपीआई डेवलपर्स को ट्विटर सर्च और ट्रेंड डेटा के साथ बातचीत करने के तरीके प्रदान करता है।<ref>{{Cite web|title=रुझान/स्थान प्राप्त करें|url=https://developer.twitter.com/en/docs/trends/trends-for-location/api-reference/get-trends-place|website=developer.twitter.com|language=en|access-date=2020-04-30}}</ref> | |||
== डिजाइन == | == डिजाइन == | ||
एपीआई के डिजाइन का इसके उपयोग पर महत्वपूर्ण प्रभाव पड़ता है।<ref name="Clarke4" />सबसे पहले, प्रोग्रामिंग इंटरफेस का डिजाइन सॉफ्टवेयर आर्किटेक्चर के एक महत्वपूर्ण हिस्से का प्रतिनिधित्व करता है, सॉफ्टवेयर के एक जटिल टुकड़े का | एपीआई के डिजाइन का इसके उपयोग पर महत्वपूर्ण प्रभाव पड़ता है।<ref name="Clarke4" /> सबसे पहले, प्रोग्रामिंग इंटरफेस का डिजाइन सॉफ्टवेयर आर्किटेक्चर के एक महत्वपूर्ण हिस्से का प्रतिनिधित्व करता है, जो सॉफ्टवेयर के एक जटिल टुकड़े का संगठन है।<ref name="GarlanShaw94">{{Cite journal |last1=Garlan |first1=David |last2=Shaw |first2=Mary |date=January 1994 |title=सॉफ्टवेयर आर्किटेक्चर का परिचय|url=https://www.cs.cmu.edu/afs/cs/project/able/ftp/intro_softarch/intro_softarch.pdf |journal=Advances in Software Engineering and Knowledge Engineering |volume=1 |access-date=8 August 2016}}</ref> सूचना छिपाने का सिद्धांत मॉड्यूल के कार्यान्वयन विवरण को छिपाकर मॉड्यूलर प्रोग्रामिंग को सक्षम करने के रूप में प्रोग्रामिंग इंटरफेस की भूमिका का वर्णन करता है ताकि मॉड्यूल के उपयोगकर्ताओं को मॉड्यूल के अंदर की जटिलताओं को समझने की आवश्यकता न हो।<ref name="Parnas72">{{Cite journal |last=Parnas |first=D.L. |date=1972 |title=मॉड्यूल में डीकंपोज़िंग सिस्टम में उपयोग किए जाने वाले मानदंड पर|journal=Communications of the ACM |volume=15 |issue=12 |pages=1053–1058 |doi=10.1145/361598.361623|s2cid=53856438 }}</ref> पिछले अंतर्निहित सिद्धांत के अलावा, एपीआई की उपयोगिता को मापने के लिए अन्य मेट्रिक्स में कार्यात्मक दक्षता, समग्र शुद्धता और नौसिखियों के लिए सीखने की क्षमता जैसे गुण सम्मिलित हो सकते हैं।<ref>{{cite journal | url=https://dl.acm.org/doi/pdf/10.1145/2896587 | doi=10.1145/2896587 | title=एपीआई उपयोगिता में सुधार| year=2016 | last1=Myers | first1=Brad A. | last2=Stylos | first2=Jeffrey | journal=Communications of the ACM | volume=59 | issue=6 | pages=62–69 | s2cid=543853 }}</ref> एपीआई डिजाइन करने का एक सीधा और प्रायः अपनाया जाने वाला तरीका नीलसन के अनुमानी मूल्यांकन दिशानिर्देशों का पालन करना है। फ़ैक्टरी विधि पैटर्न भी उनके पुन: प्रयोज्य प्रकृति के कारण एपीआई को डिजाइन करने में विशिष्ट है।<ref>Brian Ellis, Jeffrey Stylos, and Brad Myers. 2007. The Factory Pattern in API Design: A Usability Evaluation. In ''Proceedings of the 29th international conference on Software Engineering'' (''ICSE '07''). IEEE Computer Society, USA, 302–312. DOI:https://doi.org/10.1109/ICSE.2007.85 http://www.cs.cmu.edu/~NatProg/papers/Ellis2007FactoryUsability.pdf</ref> इस प्रकार, एक एपीआई का डिज़ाइन केवल उन उपकरणों को प्रदान करने का प्रयास करता है जिनकी उपयोगकर्ता अपेक्षा करता है।<ref name="Clarke4" /> | ||
पिछले अंतर्निहित सिद्धांत के अलावा, एपीआई की उपयोगिता को मापने के लिए अन्य मेट्रिक्स में कार्यात्मक दक्षता, समग्र शुद्धता और नौसिखियों के लिए सीखने की क्षमता जैसे गुण | |||
=== तुल्यकालिक बनाम अतुल्यकालिक === | === तुल्यकालिक बनाम अतुल्यकालिक === | ||
एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस तुल्यकालिक या अतुल्यकालिक हो सकता है। तुल्यकालिक एपीआई कॉल एक डिज़ाइन पैटर्न है जहां कॉल साइट को कॉल किए गए कोड के समाप्त होने की प्रतीक्षा करते समय अवरुद्ध कर दिया जाता है।<ref>[https://developer.cisco.com/docs/packaged-contact-center/#!synchronous-vs-asynchronous-writes Synchronous vs. Asynchronous Writes - Packaged Contact Center Enterprise - Document - Cisco DevNet]</ref> अतुल्यकालिक एपीआई कॉल के साथ, हालांकि, कॉल साइट को कॉल किए गए कोड के समाप्त होने की प्रतीक्षा करते समय अवरुद्ध नहीं किया जाता है, और उत्तर आने पर कॉलिंग थ्रेड को अधिसूचित किया जाता है। | |||
== सुरक्षा == | == सुरक्षा == | ||
पब्लिक फेसिंग एपीआई विकसित करते समय एपीआई सुरक्षा बहुत महत्वपूर्ण है। सामान्य खतरों में SQL इंजेक्शन, डेनियल-ऑफ़-सर्विस अटैक (DoS), टूटा | पब्लिक फेसिंग एपीआई विकसित करते समय एपीआई सुरक्षा बहुत महत्वपूर्ण होती है। सामान्य खतरों में एसक्यूएल (SQL) इंजेक्शन, डेनियल-ऑफ़-सर्विस अटैक (DoS), टूटा प्रमाणीकरण, और संवेदनशील डेटा को प्रकट करना सम्मिलित है।<ref>{{cite web |url=https://owasp.org/www-project-api-security/ |title=ग्लोबल क्लाउड माइक्रोसर्विसेज मार्केट (2021 से 2026)|last=Silva |first=Paulo |date=2019 |access-date=2022-03-29}}</ref> उचित सुरक्षा अभ्यासों को सुनिश्चित किए बिना खराब अभिनेता उस जानकारी तक पहुंच प्राप्त कर सकते हैं जो उनके पास नहीं होनी चाहिए या यहां तक कि आपके सर्वर में बदलाव करने के लिए विशेषाधिकार भी प्राप्त कर सकते हैं। कुछ सामान्य सुरक्षा अभ्यासों में एचटीटीपीएस (HTTPS) का उपयोग करके उचित संपर्क सुरक्षा, डेटा इंजेक्शन हमलों को कम करने के लिए सामग्री सुरक्षा, और आपकी सेवा का उपयोग करने के लिए एपीआई कुंजी की आवश्यकता सम्मिलित है।<ref>{{cite web |url=https://developer.mozilla.org/en-US/docs/Web/Security |title=वेब सुरक्षा|date=2022-02-18 |access-date=2022-03-29}}</ref> कई पब्लिक एपीआई सेवाओं के लिए आपको निर्दिष्ट एपीआई कुंजी का उपयोग करने की आवश्यकता होती है, और आपके अनुरोध के साथ कुंजी भेजे बिना डेटा की सेवा करने से मना कर दिया जाएगा।<ref>{{Cite web |date=2022-03-01 |title=एपीआई कुंजी - एपीआई कुंजी क्या है? {{!}} एपीआईलेयर ब्लॉग|url=https://blog.apilayer.com/api-keys-what-is-an-api-key/ |access-date=2022-07-15 |language=en-US}}</ref> | ||
== | == जारी नीतियां == | ||
एपीआई अधिक सामान्य तरीकों में से एक है जिसे प्रौद्योगिकी कंपनियां एकीकृत करती हैं। एपीआई प्रदान | एपीआई अधिक सामान्य तरीकों में से एक है जिसे प्रौद्योगिकी कंपनियां एकीकृत करती हैं। जो एपीआई प्रदान और उपयोग करते हैं उन्हें एक व्यापार पारिस्थितिकी तंत्र के सदस्य के रूप में माना जाता है।<ref>{{cite web| | ||
last=de Ternay| | last=de Ternay| | ||
first=Guerric| | first=Guerric| | ||
| Line 160: | Line 161: | ||
date=Oct 10, 2015| | date=Oct 10, 2015| | ||
access-date=2016-02-01}}</ref> | access-date=2016-02-01}}</ref> | ||
एपीआई का उपयोग कर अनुप्रयोगों के विकास और रखरखाव के लिए | एपीआई जारी करने की मुख्य नीतियां हैं।<ref name="Boyd16">{{Cite web |url=http://www.programmableweb.com/news/private-partner-or-public-which-api-strategy-best-business/2014/02/21 |title=निजी, भागीदार या सार्वजनिक: कौन सी एपीआई रणनीति व्यवसाय के लिए सर्वश्रेष्ठ है?|last=Boyd |first=Mark |date=2014-02-21 |website=ProgrammableWeb |access-date=2 August 2016}}</ref> | ||
एपीआई प्रलेखन | *निजी- एपीआई आंतरिक कंपनी के उपयोग के लिए ही है। | ||
*भागीदार- केवल विशिष्ट व्यावसायिक भागीदार ही एपीआई का उपयोग कर सकते हैं। उदाहरण के लिए, किराए पर लेने वाली कंपनियां जैसे ऊबर और लिफ़्ट (Lyft), स्वीकृत तृतीय-पक्ष डेवलपर्स को उनके ऐप के भीतर से सीधे सवारी का आदेश देने की अनुमति देती हैं। यह कंपनियों को गुणवत्ता नियंत्रण करने की अनुमति देता है कि किस ऐप्स की एपीआई तक पहुंच है और उन्हें एक अतिरिक्त राजस्व धारा प्रदान करता है।<ref>{{Cite web |url=https://www.adexchanger.com/mobile/car-service-apis-everywhere-whats-partner-apps/ |title=कार सर्विस एपीआई हर जगह हैं, लेकिन पार्टनर ऐप्स के लिए इसमें क्या है?|last=Weissbrot |first=Alison | website=AdExchanger |date=7 July 2016}}</ref> | |||
*सार्वजनिक- एपीआई जनता द्वारा उपयोग के लिए उपलब्ध है। उदाहरण के लिए, माइक्रोसॉफ्ट विंडोज एपीआई को सार्वजनिक करता है, और एप्प्ल अपना एपीआई कोको जारी करता है ताकि सॉफ़्टवेयर को उनके प्लेटफ़ॉर्म के लिए लिखा जा सके। सभी सार्वजनिक एपीआई प्रायः सभी के लिए उपलब्ध नहीं होते हैं। उदाहरण के लिए, क्लाउडफ्लेयर या वोक्सिलिटी जैसे इंटरनेट सेवा प्रदाता, ग्राहकों और पुनर्विक्रेताओं को उनकी बुनियादी सुविधाओं की जानकारी, डीडॉस (DDoS) आँकड़े, नेटवर्क प्रदर्शन, या डैशबोर्ड नियंत्रणों तक पहुँचने की अनुमति देने के लिए रेस्टफुल (RESTful) एपीआई का उपयोग करते हैं।<ref name="Cloudflare">{{Cite web |url=https://api.cloudflare.com/ |title=क्लाउडफ्लेयर एपीआई v4 प्रलेखन|date=25 February 2020 |website=cloudflare |access-date=27 February 2020}}</ref> ऐसे एपीआई तक पहुंच या तो "एपीआई टोकन", या ग्राहक स्थिति सत्यापन द्वारा प्रदान की जाती है।<ref name="SmashMagazine">{{Cite web |url=https://www.smashingmagazine.com/2018/01/understanding-using-rest-api/ |title=कार सर्विस एपीआई हर जगह हैं, लेकिन पार्टनर ऐप्स के लिए इसमें क्या है|last=Liew |first=Zell |date=17 January 2018 |website=Smashing Magazine |access-date=27 February 2020}}</ref> | |||
स्पष्टता के हित में, एपीआई प्रलेखन में एपीआई में वर्गों और विधियों के विवरण के साथ-साथ विशिष्ट उपयोग परिदृश्य, कोड | === पब्लिक एपीआई निहितार्थ === | ||
एक महत्वपूर्ण कारक जब एक एपीआई सार्वजनिक हो जाता है तो इसकी "इंटरफ़ेस स्थिरता" होती है। एपीआई में परिवर्तन - उदाहरण के लिए एक फ़ंक्शन कॉल में नए पैरामीटर जोड़ने से - उस एपीआई पर निर्भर क्लाइंट के साथ संगतता टूट सकती है।<ref name="researchgate.net">{{Cite book |last1=Shi |first1=Lin |url=https://www.researchgate.net/publication/225147411 |title=एपीआई प्रलेखन के विकास पर एक अनुभवजन्य अध्ययन|last2=Zhong |first2=Hao |last3=Xie |first3=Tao |last4=Li |first4=Mingshu |date=2011 |work=International Conference on Fundamental Approaches to Software Engineering |isbn=978-3-642-19810-6 |series=Lecture Notes in Computer Science |volume=6603 |pages=416–431 |doi=10.1007/978-3-642-19811-3_29 |access-date=22 July 2016}}</ref> | |||
जब सार्वजनिक रूप से प्रस्तुत एपीआई के भाग परिवर्तन के अधीन होते हैं और इस प्रकार स्थिर नहीं होते हैं, तो किसी विशेष एपीआई के ऐसे भागों को स्पष्ट रूप से "अस्थिर" के रूप में प्रलेखित किया जाना चाहिए। उदाहरण के लिए, गूगल गुआवा लाइब्रेरी में, जिन भागों को अस्थिर माना जाता है, और जो जल्द ही बदल सकते हैं, उन्हें जावा एनोटेशन @Beta के साथ चिह्नित किया गया है।<ref>{{Cite web |url=https://code.google.com/p/guava-libraries/ |title=अमरूद-पुस्तकालय - अमरूद: जावा 1.6+ के लिए Google कोर पुस्तकालय - Google प्रोजेक्ट होस्टिंग|date=2014-02-04 |access-date=2014-02-11}}</ref> | |||
एक सार्वजनिक एपीआई कभी-कभी खुद के कुछ भागों को पदावनत या रद्द करने की घोषणा कर सकता है। प्रायः इसका मतलब यह है कि एपीआई के भाग को हटाए जाने या पिछड़े असंगत तरीके से संशोधित किए जाने के लिए एक उम्मीदवार माना जाना चाहिए। इसलिए, ये परिवर्तन डेवलपर्स को एपीआई के उन भागों से दूर जाने की अनुमति देते हैं जिन्हें हटा दिया जाएगा या भविष्य में समर्थित नहीं किया जाएगा।<ref name="OracleDeprecation16">{{Cite web |url=http://docs.oracle.com/javase/7/docs/technotes/guides/javadoc/deprecation/deprecation.html |title=कैसे और कब एपीआई का बहिष्कार करना है|last=Oracle |website=Java SE Documentation |access-date=2 August 2016}}</ref> | |||
क्लाइंट कोड में नवीन या अवसरवादी उपयोग हो सकते हैं जो एपीआई डिजाइनरों द्वारा अभीष्ट नहीं थे। दूसरे शब्दों में, एक महत्वपूर्ण उपयोगकर्ता आधार वाली लाइब्रेरी के लिए, जब कोई तत्व सार्वजनिक एपीआई का हिस्सा बन जाता है, तो इसका उपयोग विविध तरीकों से किया जा सकता है।<ref name="MendezBaudry2013">{{Cite book |last1=Mendez |first1=Diego |title=2013 स्रोत कोड विश्लेषण और हेरफेर (SCAM) पर IEEE 13वां अंतर्राष्ट्रीय कार्य सम्मेलन|last2=Baudry |first2=Benoit |last3=Monperrus |first3=Martin |year=2013 |isbn=978-1-4673-5739-5 |pages=43–52 |chapter=Empirical evidence of large-scale diversity in API usage of object-oriented software |arxiv=1307.4062 |doi=10.1109/SCAM.2013.6648183 |s2cid=6890739 |chapter-url=https://hal.archives-ouvertes.fr/hal-00844753/document}}</ref> 19 फरवरी, 2020 को, अकामाई ने अपनी वार्षिक "स्टेट ऑफ़ द इंटरनेट" रिपोर्ट प्रकाशित की, जिसमें दुनिया भर में वित्तीय सेवाओं पर सार्वजनिक एपीआई प्लेटफार्मों को लक्षित करने वाले साइबर अपराधियों की बढ़ती प्रवृत्ति को दर्शाया गया है। दिसंबर 2017 से नवंबर 2019 तक, अकामाई ने 85.42 बिलियन क्रेडेंशियल उल्लंघन के हमले देखे। लगभग 20%, या 16.55 बिलियन, एपीआई अंतिमबिंदुओं के रूप में परिभाषित होस्टनामों के विरुद्ध थे। इनमें से 473.5 मिलियन ने वित्तीय सेवा क्षेत्र के संगठनों को लक्षित किया है।<ref name="VentureBeat">{{Cite web |url=https://venturebeat.com/2020/02/19/akamai-cybercriminals-are-attacking-apis-at-financial-services-firms/ |title=अकामाई: साइबर अपराधी वित्तीय सेवा फर्मों के एपीआई पर हमला कर रहे हैं|last=Takanashi |first=Dean |date=19 February 2020 |website=Venture Beat |access-date=27 February 2020}}</ref> | |||
== प्रलेखन == | |||
एपीआई प्रलेखन उन सेवाओं का वर्णन करता है जो एक एपीआई प्रदान करता है और उन सेवाओं का उपयोग कैसे करना है, जिसका उद्देश्य व्यावहारिक उद्देश्यों के लिए एक क्लाइंट को जानने की आवश्यकता होगी। | |||
एपीआई का उपयोग करके अनुप्रयोगों के विकास और | |||