मैं एक सूक्ष्म सेवा वातावरण में एक नई सेवा विकसित कर रहा हूं। यह एक REST सेवा है। सरलता के लिए, मान लें कि पथ है: / इतिहासपुस्तक
और इस पथ के लिए POST विधि एक नई इतिहास पुस्तक बनाती है।
मान लेते हैं कि एक इतिहास की पुस्तक इतिहास में एक या एक से अधिक युगों को शामिल करती है।
संक्षिप्तता के लिए, मान लें कि हमारे पास मानव इतिहास के केवल निम्नलिखित युग हैं:
- प्राचीन
- पोस्ट क्लासिकल
- आधुनिक
मेरे कोड में, मैं उन्हें एक में प्रतिनिधित्व करना चाहूंगा enum
।
विधि का शरीर (पेलोड) JSON प्रारूप में है, और इसमें एक फ़ील्ड नाम शामिल होना चाहिए eras
। यह फ़ील्ड era
मानों की एक सूची है , जिसमें यह पुस्तक शामिल है।
शरीर की तरह लग सकता है:
{
"name": "From the cave to Einstein - a brief history review",
"author": "Foo Bar",
"eras": ["Ancient", "Post Classical", "Modern"]
}
इस विशिष्ट सेवा में, व्यापार तर्क है:
यदि कोई युग इनपुट में प्रदान नहीं किया गया है, तो इस पुस्तक को सभी युगों को कवर करने के लिए माना जाता है ।
एपीआई की समीक्षा में, एक सुझाव दिया गया था: युग एनम के लिए
एक और मूल्य शामिल करें ALL
, स्पष्ट रूप से इंगित करने के लिए कि सभी युग कवर किए गए हैं।
मुझे लगता है कि इसके कुछ पेशेवरों और विपक्ष हैं।
पेशेवरों:
स्पष्ट इनपुट
विपक्ष:
यदि सूची में दो आइटम प्रदान किए गए हैं, तो कहें ALL
और Ancient
- आवेदन से क्या लिया जाएगा? मुझे लगता है कि ALL
अन्य मूल्यों को ओवरराइड करना चाहिए, लेकिन यह नया व्यापार तर्क है।
यदि मैं विशिष्ट युग को कवर करने वाली पुस्तकों के लिए एक क्वेरी चलाता हूं, तो मैं उन पुस्तकों का प्रतिनिधित्व कैसे करूंगा जो सभी युगों को कवर करती हैं? तो ALL
भी उत्पादन (एक ही तर्क का उपयोग करके) के लिए प्रयोग किया जाता है, तो यह व्याख्या करने के लिए उपभोक्ता की जिम्मेदारी है ALL
के रूप में ["Ancient", "Post Classical", "Modern"]
।
मेरा प्रश्न
मुझे लगता है कि नया होने से ALL
ज्यादा भ्रम की स्थिति पैदा होती है।
तुम क्या सोचते हो? क्या आप इस ALL
मान को जोड़ेंगे या इसके बिना अपना एपीआई रखेंगे?