2013-06-05 12 views
11

के लिए मैं एक सही स्थिति कोड एक एपीआई के माध्यम से एक gneral विफलता के लिए भेजने के लिए देख रहा हूँ।HTTP स्थिति कोड सामान्य विफलता

सटीक परिदृश्य खरीदारी की टोकरी के लिए एक उत्पाद को जोड़ने के लिए विफल हो रहा है।

विफलता के कारणों की एक बड़ी संख्या के लिए भी हो सकता है, लेकिन मैं एक भी http कोड को वापस करना चाहते हैं।

कौन सा सबसे अच्छा होगा?

मैं उन के माध्यम से तलाश कर दिया गया है और नहीं कर सकते कुछ भी है कि वास्तव में जरूरत है यहाँ फिट बैठता है देखते हैं।

संभव विफलता की स्थिति में से कुछ हो सकता है:

Not enough stock to satisfy 
Stock limit reached for that particular product 
Product no longer available 
+0

आप शायद एक HTTP 400 चाहते हैं। Http://stackoverflow.com/questions/1959947/whats-an-appuous-http-status-code-to-return-by-a-rest-api-service-for देखें -ए-वैल – lreeder

+1

इसके अलावा, इस आईईटीएफ ड्राफ्ट को पढ़ें: http://www.ietf.org/id/draft-nottingham-http-problem-04.txt –

उत्तर

11

यदि यह सर्वर त्रुटि है तो यह 500 होना चाहिए अगर यह ग्राहक त्रुटि है, का उपयोग 400

ऐसा नहीं है कि तुलना में अधिक सटीक होना करने के लिए मुश्किल है यूआरआई को देखे बिना और आप इसके साथ क्या करते हैं। उदाहरण के लिए, यदि "उत्पाद अब उपलब्ध नहीं है" GET अनुरोध का परिणाम है, तो यह 404 (नहीं मिला) होना चाहिए। लेकिन अगर यह एक पोस्ट अनुरोध था, तो यह होना चाहिए 200 या 202.

अन्य दो के लिए, वे त्रुटि नहीं हो सकता है। यह हो सकता है कि ग्राहक ने सही अनुरोध भेजा हो लेकिन स्टॉक किसी और द्वारा उपभोग किया गया है, इस मामले में सर्वर को 40 9 (संघर्ष) वापस करना चाहिए। अगर अनुरोध शुरुआत से बहुत अधिक स्टॉक के लिए था, तो यह केवल 200/202 होना चाहिए।

आप केवल एक कोड के लिए था, तो सिर्फ 400 और 200 (ऊपर देखें) का उपयोग करें।

+0

मैंने उदाहरण विफलताओं के साथ प्रश्न अपडेट किया है। वे 400 के साथ बेहतर फिट हो सकते हैं लेकिन यह अभी भी सही नहीं लगता है –

+0

@MartyWallace मैंने अपना जवाब अपडेट किया। – imel96

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