2011-05-23 15 views
11

मैं एक एपीआई बनाने की तलाश में हूं ताकि अन्य साइटें मेरे वेब एप्लिकेशन से डेटा तक पहुंच सकें।जावास्क्रिप्ट एपीआई कैसे लिखें?

मुझे कोई भी संसाधन ऑनलाइन नहीं मिला है जो आपकी खुद की जावास्क्रिप्ट एपीआई बनाने की प्रक्रिया को समझाता है।

मैं सीखना चाहता हूँ कैसे सेटअप प्रमाणीकरण, आंकड़ा संचरण, आदि

मैं अपने ही जावास्क्रिप्ट एपीआई कैसे लिख सकता हूँ के लिए?

क्या कोई अच्छा ट्यूटोरियल है जो GData API या YouTube API जैसे जावास्क्रिप्ट एपीआई बनाने की प्रक्रिया को समझाता है?

मैं वास्तव में इसे 2 अलग-अलग ऐप्स पर कर रहा हूं। एक टॉमकैट, माईएसक्यूएल, और जावा के साथ एक अपाचे सर्वर पर है। दूसरा MySQL और PHP के साथ अपाचे पर है। फ्रंट एंड सभी जावास्क्रिप्ट में लिखा गया है जिसके माध्यम से यह बैकएंड के साथ इंटरफेस करता है। मैंने पुस्तकालय लिखना शुरू कर दिया है जिसका उपयोग वे हमारे कार्यों के साथ संवाद करने के लिए करेंगे।

+4

क्या आपके पास पहले से ही सर्वर-साइड घटक है जिसके माध्यम से जावास्क्रिप्ट एपीआई इंटरफेस करेगा? या आप अपने एचटीएमएल पृष्ठों का सीधे निरीक्षण करने के लिए इसका इरादा रखते हैं? – Matt

+0

मेरे पास पहले से सर्वर-साइड घटक नहीं है, लेकिन मैं कर सकता हूं। निर्भर करता है कि कौन सा बेहतर या आसान है। मैं या तो कर सकता हूं, लेकिन मैं HTML पृष्ठों का निरीक्षण करने की ओर झुका रहा हूं। – UpHelix

+0

अच्छा g'damn मुझे यह उपयोगी पाया! –

उत्तर

7

यह एक बहुत ही सामान्य/व्यापक प्रश्न है, और इस तरह से केवल बहुत सामान्य/व्यापक प्रतिक्रिया प्राप्त होगी। यह जानने के बिना कि आप किन सर्वर साइड टेक्नोलॉजीज का उपयोग कर रहे हैं, आप वर्तमान में आर्किटेक्टेड कैसे हैं, कितना काम करना है (इस बात के लिए प्रासंगिक है कि एक दृष्टिकोण को लेने में कितना प्रयास करना चाहिए दूसरा), आदि

मैं व्यक्तिगत रूप से जीडीटा या यूट्यूब एपीआई से परिचित नहीं हूं, इसलिए उनकी तकनीकें मेरे लिए अज्ञात हैं। हालांकि, मैं निम्नलिखित व्यक्तिगत सिफारिशें कर सकता हूं:

1) मैं सुझाव दूंगा कि आप अपने पृष्ठ के प्रत्यक्ष HTML निरीक्षण से बचें और इसके बजाय अपने क्लाइंट साइड एपीआई के पूरक के लिए सर्वर साइड एपीआई की अनुशंसा करें। विशेष रूप से, मैं RESTful like approach पर विचार करूंगा जहां आप अपनी संस्थाओं/डेटा को उन संसाधनों के रूप में मानते हैं जिनके लिए आप कार्य करना चाहते हैं।

इस दृष्टिकोण के आपके पृष्ठ के वास्तविक दृश्य/HTML प्रतिनिधित्व से स्वतंत्र होने का लाभ है, और इसलिए परिवर्तनों के लिए अधिक लचीला है। यदि आप सीधे अपने एचटीएमएल के खिलाफ एपीआई लिखते हैं, तो जब भी आप अपना पेज बदलते हैं (भले ही सामग्री/डेटा वही रहता है), आप एपीआई तोड़ने का जोखिम चलाएंगे।

सर्वर-साइड घटक होने का एक अन्य लाभ यह है कि आप JSONP का लाभ उठा सकेंगे जो क्रॉस-डोमेन अनुरोध करने में शामिल कुछ दर्द को कम कर सकता है। जेएसओएनपी का एक नकारात्मक पक्ष यह है कि आप POST अनुरोध नहीं कर सकते हैं, केवल अनुरोध प्राप्त करें, जो पूरी तरह से एक विश्वसनीय दृष्टिकोण के साथ नहीं है (लेकिन मुझे अभी भी विश्वास है कि एक विश्वसनीय वास्तुकला कई लाभ प्रदान करता है)।

2) डेटा ट्रांसमिशन एक आसान सिफारिश है - हाथ नीचे मैं JSON चुनूंगा। ऐसे कुछ परिदृश्य हैं जहां एक्सएमएल जेएसओएन पर अधिक एप्रीप्रेट डेटा प्रारूप हो सकता है, लेकिन मुझे लगता है कि आप पाएंगे कि JSON आपकी आवश्यकताओं को अच्छी तरह से अनुरूप करेगा।

3) क्लाइंट-साइड प्रमाणीकरण क्रॉस-डोमेन अनुरोधों के लिए मुश्किल हो सकता है। यहां एक विकल्प प्रमाणीकरण करने के लिए एक आईफ्रेम का उपयोग करना है। एचएमएसी या ओथ का उपयोग करने का एक और विकल्प है।

4) वास्तव में जावास्क्रिप्ट एपीआई लिखने के लिए, मैं JavaScript books के संबंध में SO पर कुछ धागे को पढ़ने की अनुशंसा करता हूं। इच्छा में नामांकन और अन्य एपीआई आयोजित करने के लिए उपयोगी अन्य विषयों पर चर्चा शामिल होगी।

जैसा कि मैंने कहा - ये बहुत सामान्य सिफारिशें हैं।आपका उपयोग-मामला एक त्वरित और गंदे HTML स्क्रैपिंग के साथ ठीक होगा (हालांकि आपको क्रॉस-डोमेन सीमाओं को प्राप्त करने के लिए IFrames का उपयोग करने की आवश्यकता होगी)। जैसा कि मैंने उपर्युक्त उल्लेख किया है, पूरी तरह से लिया गया है, कोई मामूली कार्य नहीं है, खासकर अगर इनमें से कोई भी तत्व इस जगह पर नहीं है।

+0

धन्यवाद, यह बहुत सारी जानकारी है जो मुझे शुरू करने के लिए जरूरी है। मैंने अपने प्रश्नों को उन तकनीकों के साथ अपडेट किया जो मैं चला रहा हूं, एफवाईआई। – UpHelix

+0

ओथ को लागू करने वाले किसी भी व्यक्ति के लिए यहां एक शानदार पृष्ठ है, बस अपनी भाषा चुनें और लाइब्रेरी को लागू करें: http://oauth.net/code/। और यदि आप सिर्फ ओथ को बेहतर समझने की सोच रहे हैं: http://oauth.net/ – UpHelix

संबंधित मुद्दे