क्या एक वेबसाइट को अपने स्वयं के सार्वजनिक एपीआई का उपयोग करना चाहिए?


31

मैं एक webservice लिखना शुरू कर रहा हूं, और मैंने नोडजेएस और एक रैस्टफुल दृष्टिकोण के साथ बनाया है।

मैं जो इकट्ठा करता हूं:

  • लाभ यह है कि आपको कोड डुप्लिकेट नहीं करना है।
  • नुकसान यह है कि आप:
    • सार्वजनिक API को बार-बार अपडेट करेगा, लेकिन संस्करण के साथ हल किया जाना चाहिए
    • वास्तव में सेवा विशिष्ट कैशिंग और अनुकूलन नहीं कर सकते

सबसे अच्छा अभ्यास क्या माना जाता है? क्या Stack Exchange, Github, Twitter आदि जैसी साइटें अपने क्लाइंट के लिए अपने API का उपयोग करती हैं?

api 

12
अपने खुद के डॉगफूड खाने से आप सार्वजनिक रूप से सुधारने के लिए भी ड्राइव करेंगे
बेन ब्रोका

ऐसा अमेज़न करता है।
ओलिवर

2
ऑलवरस पॉइंट को जोड़ने के लिए, Google प्लेटफ़ॉर्म
ब्रायन

जवाबों:


37

आपको पूरी तरह से अपने खुद के एपीआई का उपयोग करना चाहिए। इस अवधारणा को व्यापक रूप से डॉगफूडिंग के रूप में जाना जाता है और कोड डुप्लीकेशन से बचने के कई फायदे हैं।

  • आपकी साइट / उत्पाद और क्या एपीआई उपभोक्ता लिखेंगे (यानी आपकी एपीआई की उनकी अपेक्षाएं)
  • परीक्षण का दूसरा रूप।
  • आप अपने ग्राहकों को करने से पहले एपीआई में बग ढूंढ सकते हैं और उनके संकल्पों को कम कर सकते हैं।

हालाँकि मैं आपके किसी एक बिंदु के खिलाफ बहस करूंगा: आपको अक्सर एपीआई अपडेट नहीं करना चाहिए । आर्किटेक्ट के लिए समय बिताएं और एक एपीआई का प्रमाण दें जो थोड़ी देर के लिए आसपास रहेगा। सौभाग्य से, इस तरह से डॉगफूडिंग यह लागू करेगा। जहां आपने पहले ग्राहक कोड को तोड़ा होगा, अब आप अपना स्वयं का कोड तोड़ रहे होंगे। जब आपको होना चाहिए , हाँ संस्करण एक समाधान है, लेकिन इसे बचा जाना चाहिए।


0

किसी कारण से यह मुझे प्रश्न के पोस्टर के रूप में लॉग इन नहीं करने देगा, लेकिन यह मैं था। मैं आपके उत्तर को स्वीकार नहीं कर सकता, काश, मैं ऐसा कर पाता, यह बहुत मायने रखता है।

हालाँकि, आप अपने एपीआई को कैसे अपडेट नहीं करना चाहते हैं? नई सुविधाओं को जोड़ने, अलोकप्रिय लोगों को हटाने, रीफैक्टरिंग आदि के बारे में क्या?


अरे। यह उसके उत्तर पर एक टिप्पणी होनी चाहिए - लेकिन मुझे नहीं लगता कि आपके पास टिप्पणी करने के लिए पर्याप्त प्रतिनिधि है। वैसे भी, मुद्दा यह है कि आपको अक्सर एपीआई को अपडेट नहीं करना चाहिए । और फिर भी, नई सुविधाओं को जोड़ना कोई समस्या नहीं है - यह मौजूदा कोड को तोड़ नहीं सकता है। क्यों अलोकप्रिय लोगों को हटा दें? उन्हें पदावनत कर दें, और भविष्य में कुछ समय के लिए हटा दें क्योंकि लोगों के पास पदावनत का जवाब देने के लिए एक लंबा समय है।
अधिकतम

2
API में विधियाँ जोड़ना ठीक है, मौजूदा API को बदलना बुरा है क्योंकि यह API पर निर्भर किसी भी कोड को तोड़ देगा।
ब्रायन ओकले

@ stanm87: मैक्स और ब्रायन ने इसे अच्छी तरह से कहा। आपको अपने एपीआई के अनुबंध (यानी, इंटरफ़ेस और अपेक्षित, कार्य व्यवहार) को बदलने से बचना चाहिए। लोग इस बात पर निर्भर करेंगे कि यदि वे आपके एपीआई का उपयोग करेंगे और यदि आप इसे बदलते हैं, तो यह उनके कोड को तोड़ देगा।
स्टीवन एवर्स

स्पष्ट करने के लिए धन्यवाद। @ मोम मैं वास्तव में उनके जवाब पर टिप्पणी नहीं कर सकता
stanm87
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.