2015-09-30 11 views
7

पर कुल डेटा लौटने का कहना है कि आप एक नए आरईएसटी एपीआई के विकास का नेतृत्व कर रहे हैं। ग्रीनफील्ड।संसाधन

और आप पहले से ही अपने बाकी एपीआई के लिए एक व्यक्ति के लिए इस संरचना है, यह स्कीमा:

{ 
    "id": 12, 
    "name":{ 
      "first":"Angie", 
      "last": "Smith", 
      "middle": "joy", 
      "maiden": "crowly", 
    }, 
    "address": { 
      "street": "1122 Something St.", 
      ..and so on... 
    }, 
... and so on 
} 

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

आप चाहेंगे:

क) बताओ कि व्यक्ति "ठीक है, यकीन है कि, अच्छी तरह से नाम पहले से ही हमारे लोगों संसाधन endpoint का हिस्सा हैं हम सिर्फ लोगों को है कि आप बस नाम दे देंगे की एक सूची प्रदान कर सकते हैं।। आखिरी क्षेत्र वापस, और आप केवल एक अलग व्यक्ति के लिए एक व्यक्ति प्राप्त करेंगे। वह मौजूद है "। मूल रूप से लोगों के लिए डेटाबेस में मूल रूप से हर अद्वितीय अंतिम नाम की आवश्यकता को पूरा करने के लिए उन्हें लोगों का एक समेकित समूह दें।

तो काल्पनिक यूआरएल उदाहरण के लिए वे सिर्फ /people?fields=name.last?aggregate

ख) ओह ठीक है, हम सिर्फ तुम्हारे लिए एक विशेष अंत बिंदु बना देंगे फोन चाहते हैं, हम क्या है कि संसाधन या अंतिम बिंदु यूआरएल लगेगा पता नहीं है की तरह अभी तक, लेकिन हम आपको सिर्फ इस देंगे:

{ 
    "lastNames": { 
      "name": "Anderson", 
      "name": "Alvertson", 
     ....etc. 
     } 
} 

और कौन जानता है कि क्या संसाधन यह और भी है, वहाँ कोई नाम आप भी इस दे सकते हैं।

और आप आरईएसटी के सभी लाभ भूल गए हैं क्योंकि आपके ग्राहक ने यह समझने से इनकार कर दिया कि आपके पास बनाए रखने के लिए एक आर्किटेक्चर और सम्मेलन है और आप उन्हें जो संसाधनों को सेट अप करते हैं उन्हें प्रदान करते हैं, लेकिन उन्हें लगता है कि यह किसी अजीब है कि उन्हें किसी का पालन करना है संसाधन टेम्पलेट का प्रकार जो भी हो और आपको असीमित/अंतहीन कस्टम संसाधनों का निर्माण करने की उम्मीद है, जिनमें कोई संसाधन नहीं है या इन संसाधनों को नाम देने का कोई तरीका नहीं है क्योंकि वे आपके एपीआई को उनके आवेदन में जोड़ रहे हैं और वे उम्मीद करते हैं कि आप जो भी अनुबंध महसूस करते हैं डिजाइन करना चाहिए ... जिसका अर्थ है कि वे महसूस करते हैं कि वे आपको सचमुच बता सकते हैं कि कैसे अपना एपीआई डिज़ाइन करें और आपके पास कोई बात नहीं है!

और आप जानते हैं कि क्या आप केवल एक बार में देते हैं और अपने वर्तमान आरईएसटी संसाधन को यहां छोड़कर "व्यक्ति" है कि वे सबसे अधिक संभावना है कि आप किसी भी डिजाइन फैसले को छोड़ दें या अपने साथ बनाना चाहते हैं एपीआई के बाद से आपने कहा कि उन्हें आपके डिजाइन की परवाह नहीं है, फिर भी आप इस एपीआई को खपत कंपनी के लिए बनाने वाली प्लेटफॉर्म टीम हैं!

और आप जानते हैं कि आपके एपीआई को कई ऐप्स, अन्य सेवाओं या यहां तक ​​कि जनता द्वारा कुछ दिन उपभोग किया जा सकता है।

या

ग) सिर्फ इस च कहना और लगातार उन्हें समझाने की कोशिश कर REST और आप क्यों कुछ सम्मेलनों भी संसाधनों की सरल विचार है कि कोई मतलब रखने के लिए कोशिश कर रहे हैं के तनाव के कारण alltogether छोड़ और संबंधित संसाधनों को प्राप्त करने के लिए उन संसाधनों का पुन: उपयोग करने का प्रयास कर रहे हैं, और साथ में काम करने के लिए एक बेहतर जगह और टीम ढूंढें, क्योंकि रचनात्मक और कुशलतापूर्वक उन्हें समय और समय बताने की कोशिश करने के बाद कि हमारे पास सम्मेलन हैं, हम एपीआई पर चिपके हुए हैं, वेब टीम को अभी भी लगता है कि उन्हें आपके आरईएसटी एपीआई डिज़ाइन को 100% निर्धारित करने की आवश्यकता है, जिनके पास आरईएसटी के बारे में कोई जानकारी नहीं है और इसलिए वे आपकी परवाह नहीं करते हैं ...वे सोचते हैं कि वे सिर्फ एपीआई के मालिक हो सकते हैं, भले ही यह आप और प्लेटफॉर्म टीम न केवल उपभोग के लिए बल्कि संभवतः अन्य ऐप्स, सेवाओं या भविष्य में सार्वजनिक उपभोक्ताओं को इस एपीआई को उजागर करने के लिए कंपनी के लिए तैयार कर रही है।

उत्तर

2

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

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

इस प्रकार मुझे समझ में आता है और सबसे यथार्थवादी दृष्टिकोण प्रस्तुत करता है।

बी ऊपर वर्णित कारणों के लिए समझ में नहीं आता है। याद रखें कि इस तरह की समस्याओं में सबसे पहले समर्पित समर्पित बिंदु को पेश करना सबसे मुश्किल है। जब यह हो जाता है, तो अगला समय सिर्फ एक मामला है।

कभी कभी मेरे लिए महान समझ में आता है लेकिन मैं अभी भी समझाने की कोशिश;)

याद रखें कि जब डिजाइनिंग/API को कार्यान्वित आप नियमों के अनुरूप होना चाहिए - भले ही आप खुद ही नियम निर्धारित किया है।

+2

मैंने फैसला किया है कि यह कॉफी शॉप खोलने और सॉफ्टवेयर विकास को छोड़ने के लिए मेरी सबसे अच्छी रुचि है (मेरी इच्छा है कि यह मामला था) –

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