कहें कि मेरे पास एक REST समापन बिंदु है जो एक पैरामीटर के रूप में पूर्णांक लेता है:
/makeWaffles?numberOfWaffles=3
इस मामले में, मैं चाहता हूं कि संख्या सकारात्मक हो क्योंकि मैं वफ़ल की नकारात्मक संख्या नहीं बना सकता (और 0 वफ़ल का अनुरोध समय की बर्बादी है)। इसलिए मैं किसी भी अनुरोध को अस्वीकार करना चाहता हूं जिसमें सकारात्मक पूर्णांक नहीं है। मैं एक अनुरोध को अस्वीकार करना चाहता हूं जो कुछ अधिकतम पूर्णांक से अधिक है (चलो अब के लिए कहते हैं कि यह MAX_INTEGER है)।
इस घटना में कि कोई व्यक्ति वफ़ल की गैर-सकारात्मक संख्या का अनुरोध करता है, क्या मुझे HTTP 400 (खराब अनुरोध) का दर्जा वापस करना चाहिए? मेरा प्रारंभिक विचार हां है: यह मेरे लिए अनुरोध को पूरा करने के लिए एक वैध संख्या नहीं है। हालांकि, RFC इसे फेंकने के लिए व्यावसायिक नियमों का उल्लेख नहीं करता है:
400 (खराब अनुरोध) स्थिति कोड इंगित करता है कि सर्वर किसी क्लाइंट त्रुटि के कारण होने वाली चीज़ के कारण अनुरोध को संसाधित नहीं कर सकता है या नहीं करेगा (उदाहरण के लिए, विकृत अनुरोध वाक्यविन्यास, अमान्य अनुरोध संदेश फ़्रेमिंग या भ्रामक अनुरोध रूटिंग)।
एक व्यापार नियम उन तीन उदाहरणों में से किसी के अंतर्गत नहीं आता है। यह वाक्यात्मक रूप से सही है, यह ठीक से फंसाया गया है, और यह भ्रामक अनुरोध मार्ग नहीं है।
तो क्या मुझे एक HTTP 400 (बैड रिक्वेस्ट) स्टेटस वापस करना चाहिए अगर कोई पैरामीटर वाक्य-रचना सही है, लेकिन एक व्यावसायिक नियम का उल्लंघन करता है? या फिर लौटने के लिए अधिक उपयुक्त स्थिति है?