2008-08-29 18 views
22

कैसे बनाना चाहिए, मैं एक वेब ऐप के लिए एक एपीआई बनाने जा रहा हूं और मुझे दिलचस्पी है कि लोग अच्छे प्रथाओं के रूप में क्या सुझाव दे सकते हैं।मुझे एक अच्छा (वेब) एपीआई

मैं पहले से ही इसे संस्करण बनाने की योजना बना रहा हूं (संस्करण 1 केवल सिस्टम के कुछ पहलुओं को नियंत्रित कर सकता है, संस्करण 2 अधिक नियंत्रित कर सकता है, लेकिन प्रमाणीकरण के तरीके में बदलाव की आवश्यकता हो सकती है जो संस्करण 1 के साथ असंगत होगा), और प्रमाणीकरण उन मानक उपयोगकर्ता नाम/पासवर्ड से अलग होगा जो लोग लॉग इन करने के लिए उपयोग करते हैं (यदि कोई दुर्भावनापूर्ण टूल का उपयोग करता है तो यह उन्हें पूर्ण प्रतिरूपण के लिए नहीं खुलता है, जो कुछ भी एपीआई अनुमति देता है)।

क्या किसी के पास आगे के विचार, या विशेष रूप से अच्छे एपीआई के साथ साइटों के उदाहरण हैं जिनका आपने उपयोग किया है?

उत्तर

11

RESTful Web Services पुस्तक पढ़ें, जो आपको अभ्यास में आरईएसटी का उपयोग करने के बारे में एक अच्छा अवलोकन देता है, और कुछ आत्मविश्वास के साथ अब शुरू करने के लिए पर्याप्त तेज़ी से उठने के लिए तैयार हो जाता है। यह केवल मौजूदा एपीआई को देखने से ज्यादा उपयोगी है, क्योंकि यह डिजाइन विकल्पों और व्यापार-बंदों पर भी चर्चा करता है।

6

REST का उपयोग करें।

रीस्टफुल वेब सेवा आर्किटेक्चर को कार्यान्वित करना आसान है और HTTP के ताकत और अर्थशास्त्र का उपयोग उनके उद्देश्य के लिए किया जाता है। यह संसाधन-उन्मुख है, बस वेब की तरह ही।

Amazon Web Services, Google और कई अन्य अपने उत्पादों के साथ बातचीत करने के लिए आरईएसटी एपीआई प्रदान करते हैं।

7

मैं सिद्ध एपीआई पर एक नज़र ले जाएगा:

  1. YouTube API
  2. Twitter API

के बारे में इन API "अच्छा" कर रहे हैं कि क्या तर्क की बहुत सी चीज़ें हैं लेकिन मुझे लगता है उनकी सफलता का प्रदर्शन किया जाता है , और वे उपयोग करने में आसान हैं।

3

आरईएसटी का उपयोग करें।

एपीआई के मानकों पर पढ़ें, या लोकप्रिय लोगों में से एक विचारों की प्रतिलिपि बनाएँ।

उपयोगकर्ताओं को प्रमाणीकृत करते समय सावधान रहें।

बहुत ही सरल प्रारंभ करें।

चीजें काम करने के लिए अपनी साइट का उपयोग करने वाली साइट बनाएं (भले ही यह उपयोगी न हो)। शायद आप साइट या मोबाइल का एक मोबाइल संस्करण बना सकते हैं जो आपको एपीआई का उपयोग बहुत गहराई में करने के लिए मजबूर करता है।

8

1) संस्करण संख्या को सीधे पैरामीटर के रूप में पास करने के बजाय यूआरएल में सेंकना, क्योंकि इससे आपको प्रत्येक एपीआई नेमस्पेस के संगठन को प्रत्येक संस्करण टक्कर के साथ बदलने की पूर्ण स्वतंत्रता मिलती है।

2) अपने URL पुनर्लेखन नियम रखें (यदि हो तो) के रूप में सरल/दुबला संभव के रूप में (लेकिन कोई सरल) है, जबकि अपने URL को (लेकिन कोई अधिक के रूप में के रूप में सुंदर बनाने)।

3) हमेशा प्रत्येक प्रतिक्रिया के लिए सबसे अच्छा HTTP स्टेटस कोड ढूंढें (उदाहरण के लिए 202 और 207 को न भूलें)।

4) फासीवादी पैरामीटर सत्यापन तर्क, और सूचनात्मक त्रुटि संदेशों को लागू करें।

5) HTTP अनुरोध शीर्षलेखों का उपयोग करें जहां पैरामीटर के बजाय उपयुक्त है (जैसे स्वीकृति, उदाहरण के लिए, ग्राहकों को प्रतिक्रिया के वांछित डेटा प्रारूप निर्दिष्ट करने के लिए)।

6) अपने "संज्ञाएं" को इस तरह से व्यवस्थित करें कि विभिन्न क्लाइंट ऑडियंस द्वारा उपयोग किए गए यूआरएल आपके यूआरएल पेड़ की "रूट" के पास अलग हो जाएं (इससे आवश्यक होने पर उन विभिन्न ऑडियंस के लिए अलग प्रमाणीकरण तंत्र को लागू करना आसान हो जाता है , या विभिन्न सर्वरों पर अपने यूआरएल पेड़ के विभिन्न हिस्सों को मानचित्र भी करें)।

7) आप अपने एपीआई के रूप में एक ही डोमेन बंद नियमित वेब पृष्ठों की सेवा और एक ही प्रमाणीकरण क्रेडेंशियल का उपयोग कर रहे हैं, एक एक्स-अनुरोधित-साथ हैडर अपने API अनुरोधों में की आवश्यकता होती है तो के रूप में XSRF vulnerabiities से बचने के लिए।

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