2012-04-27 13 views
5

मैं स्टैक एक्सचेंज के एपीआई परिणामों के आधार पर एक एपीआई सॉर्टा को कम करने की कोशिश कर रहा हूं।क्या यह जेसन परिणाम 404 या 200 लौटाएगा?

तो यहां मेरा जेसन आउटपुट है।

{ 
    "items" : [ ... objects in here .... ] 
    "page" : 
    "page_size" : 
    "total_pages" : 
    "total_items_count" : 
    "maximum_quota" : 
    "remaining_quota" : 
} 

बहुत आसान सरल।

अब, मुझे यकीन नहीं है कि अगर व्यक्ति अनुरोध करने का प्रयास करता है तो क्या होगा .. उम .. उत्पाद या प्रश्न या जो भी हो, और आइटम मौजूद नहीं है।

जैसे ..

{ 
    "items": [] 
    ... snipped .... 
} 

मैं सोच रहा था मैं ऊपर एक 200 और JSON वापसी होगी, आइटम संपत्ति खाली होने के साथ।

अन्य विचार मैं था आइटम संपदा के साथ कि json लौटने खाली लेकिन 404.

विचार/मानकों के जवाब http स्थिति की स्थापना की थी?

मैं वास्तव में जेसन को वापस करना चाहता हूं इससे कोई फर्क नहीं पड़ता। क्यूं कर? कोटा है। यहां तक ​​कि एक खाली परिणाम अभी भी एपीआई सेवा के लिए एक कानूनी हिट है।

+2

मेरी राय में, मैं 404 का उपयोग करूंगा, क्योंकि यह मानक कोड नहीं मिला है। – hawkfalcon

उत्तर

3

मेरी राय में मैं एक 400 & 204 स्थिति वापसी होगी:।

http://en.wikipedia.org/wiki/List_of_HTTP_status_codes

400 गलत अनुरोध

अनुरोध बुरा वाक्य रचना की वजह से पूरा नहीं किया जा सकता है [2]

यदि आप एक अवैध तर्क देते हैं, तो 400 स्थिति वापस आती है और कहा जाता है कि अनुरोध खराब है।

इस परिदृश्य में, मैं किसी भी JSON संदेश को वापस नहीं लौटाऊंगा। यह अमान्य है, इसे हल करें। स्टेटस मैसेज 'अमान्य तर्क' कह सकता है, लेकिन कोई सामग्री नहीं।


204 कोई सामग्री

सर्वर ने अनुरोध सफलतापूर्वक पूरा है, लेकिन कोई सामग्री नहीं लौटा रहा है। [2]

यदि आप वैध तर्क पास करते हैं, लेकिन सामग्री नहीं मिली, तो आप कह सकते हैं कि यह नहीं मिला था।

आप * कुछ अतिरिक्त जानकारी वापस पास करना चाहते हैं, हो सकता है।

ट्विटर के लिए, आप कहते हैं कि आप '@ जॉन डी' उपयोगकर्ता खोजना चाहते हैं, और यह नहीं मिला। आप 204 कह सकते हैं: "क्षमा करें, हम @ जॉन डू नहीं ढूंढ पाए, लेकिन हमें इन 3 समान लोगों को मिल गया जो आप चाहते हैं" हो सकता है, इस मामले में आप अपने विवरण, केवल ट्विटर नामों को नहीं दबाएंगे।

हालांकि यदि आप एक ट्वीट खोज रहे थे, और यह नहीं मिला, तो ग्राहक को कोई अतिरिक्त जानकारी भेजने का कोई कारण नहीं है। बस कहें कि यह नहीं मिला, कहानी का अंत।

+0

इसे प्यार करो! मैंने कभी 204 के बारे में सोचा नहीं :) और हाँ, 400 का मैं बुरा अनुरोध डेटा पास करने के लिए उपयोग करता हूं। –

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