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