नीचे के परिदृश्य के अनुसार,
मान लीजिए कि कोई आपके सर्वर से डेटा के लिए एक अनुरोध करता है जो सही प्रारूप में है, लेकिन बस "अच्छा" डेटा नहीं है। उदाहरण के लिए, कल्पना करें कि किसी व्यक्ति ने एक एपीआई एंडपॉइंट के लिए एक स्ट्रिंग मान पोस्ट किया है जो स्ट्रिंग मूल्य की उम्मीद करता है; लेकिन, स्ट्रिंग के मूल्य में डेटा को ब्लैकलिस्ट किया गया था (उदाहरण के लिए "पासवर्ड" को पासवर्ड के रूप में उपयोग करने से रोकना)। तब स्थिति कोड 400 या 422 हो सकता है?
अब तक, मैंने एक "400 बैड रिक्वेस्ट" लौटा दी, जो w3.org के अनुसार है, इसका मतलब है:
विकृत सिंटैक्स के कारण सर्वर द्वारा अनुरोध को समझा नहीं जा सका। ग्राहक बिना संशोधनों के अनुरोध को नहीं दोहराएगा।
यह विवरण परिस्थिति के अनुकूल नहीं है; लेकिन, यदि आप HTTP / 1.1 प्रोटोकॉल में परिभाषित कोर HTTP स्टेटस कोड की सूची से जाते हैं, तो यह शायद आपका सबसे अच्छा दांव है।
हाल ही में, हालांकि, मेरी देव टीम के किसी व्यक्ति ने [मुझे बताया] कि लोकप्रिय एपीआई अपनी त्रुटि रिपोर्टिंग के साथ अधिक बारीक पाने के लिए HTTP एक्सटेंशन का उपयोग करना शुरू कर रहे हैं। विशेष रूप से, कई API, जैसे Twitter और Recurly, WebDAV के लिए HTTP एक्सटेंशन में परिभाषित किए गए स्टेटस कोड "422 Unprocessable Entity" का उपयोग कर रहे हैं। HTTP स्थिति कोड 422 राज्यों:
422 (Unprocessable Entity) स्थिति कोड का अर्थ है कि सर्वर अनुरोध इकाई की सामग्री प्रकार को समझता है (इसलिए 415 (असमर्थित मीडिया प्रकार) स्थिति कोड अनुचित है), और अनुरोध इकाई का सिंटैक्स सही है (इस प्रकार 400 (खराब अनुरोध) ) स्थिति कोड अनुचित है) लेकिन निहित निर्देशों को संसाधित करने में असमर्थ था। उदाहरण के लिए, यह त्रुटि स्थिति तब हो सकती है यदि किसी XML अनुरोध निकाय में अच्छी तरह से गठित (यानी, वाक्यविन्यास रूप से सही) हो, लेकिन शब्दार्थ गलत, XML निर्देश।
ऊपर से हमारे पासवर्ड उदाहरण पर वापस जाने पर, यह 422 स्थिति कोड अधिक उपयुक्त लगता है। सर्वर समझता है कि आप क्या करने की कोशिश कर रहे हैं; और यह उस डेटा को समझता है जिसे आप सबमिट कर रहे हैं; यह बस उस डेटा को संसाधित नहीं होने देगा।