मैं एक RESTful API बना रहा हूं, जो संग्रहीत क्रेडिट कार्ड का उपयोग करके ऑर्डर रखने सहित कई उपयोगकर्ता इंटरैक्शन को संसाधित करेगा।
एक सफल आदेश के मामले में, मैं 200 ओके वापस कर रहा हूं, और उस मामले में जहां ऑर्डर अनुरोध विकृत है या अमान्य है, मैं 400 बैड अनुरोध वापस कर रहा हूं। लेकिन ऑर्डर के वास्तविक प्रसंस्करण के दौरान कोई समस्या होने पर मुझे क्या करना चाहिए?
- क्लाइंट POSTS एक उपयोगकर्ता संसाधन के लिए सर्वर के लिए आदेश। यदि उपयोगकर्ता मौजूद नहीं है, तो 404 नहीं मिला है।
- आदेश प्रारूप और सूचना मान्य है। यदि मान्य नहीं है, तो 400 खराब अनुरोध वापस किया जाता है।
- आदेश पर कार्रवाई की जाती है। यदि आदेश सफल होता है, तो आदेश के लिए एक 201 बनाया गया वापस कर दिया जाता है। यदि कोई अनपेक्षित त्रुटि आई है, तो 500 सर्वर त्रुटि लौटा दी जाती है।
अंतिम चरण समस्या है - यदि किसी अन्य कारण से ऑर्डर पूरा नहीं होता है तो मैं क्या लौटाऊंगा? संभावित परिदृश्यों में शामिल हो सकते हैं:
- उत्पाद बाहर बेचा जाता है
- उपयोगकर्ता अधिकतम आदेश सीमा तक पहुँच गया
- क्रेडिट कार्ड लेनदेन विफलता (अपर्याप्त धन, आदि)
ऐसा नहीं लगता है कि यह 400 या 500 में से किसी के लिए भी उपयुक्त होगा। यदि कोई चीज मुझे 400 के रूप में दिखाई दे सकती है यदि कोई बेहतर कोड नहीं है - तो व्यापार नियमों के अनुसार अनुरोध अमान्य था। यह सिर्फ सटीक नहीं लगता है।
संपादित करें: एक ही विषय की यह मौजूदा चर्चा भी मिली । वहाँ के सभी उत्तर इस प्रकार के उल्लंघन के लिए स्थिति कोड का उपयोग करने के लिए इंगित करते हैं, 400, 409, या 422 एक्सटेंशन का उपयोग करने के बीच कुछ चर्चा के साथ।