मैं कहूंगा, न।
404 क्यों नहीं (नहीं मिला)?
404 स्थिति कोड स्थितियों के लिए आरक्षित होना चाहिए, जिसमें एक संसाधन नहीं मिला है। इस स्थिति में, आपका संसाधन उपयोगकर्ताओं का एक संग्रह है । यह संग्रह मौजूद है, लेकिन वर्तमान में यह खाली है। व्यक्तिगत रूप से, मैं आपके आवेदन के लिए एक ग्राहक के लेखक के रूप में बहुत भ्रमित होऊंगा यदि मुझे 200
एक दिन और 404
अगले दिन सिर्फ इसलिए मिला क्योंकि कोई एक उपयोगकर्ता को निकालने के लिए हुआ था। मुझे क्या करना चाहिए? क्या मेरा URL गलत है? क्या किसी ने एपीआई को बदल दिया और एक पुनर्निर्देशन छोड़ने की उपेक्षा की।
204 (कोई सामग्री) क्यों नहीं?
यहाँ w3c द्वारा 204 स्थिति कोड के विवरण का एक अंश दिया गया है
सर्वर ने अनुरोध पूरा कर लिया है, लेकिन उसे निकाय-निकाय को वापस करने की आवश्यकता नहीं है, और अद्यतन मेटैनफॉर्मेशन वापस करना चाह सकता है।
हालांकि यह इस मामले में उचित लग सकता है, मुझे लगता है कि यह ग्राहकों को भ्रमित भी करेगा। A 204
यह संकेत देता है कि कुछ ऑपरेशन को सफलतापूर्वक निष्पादित किया गया था और किसी भी डेटा को वापस करने की आवश्यकता नहीं है। यह एक DELETE
अनुरोध के जवाब के रूप में या शायद कुछ स्क्रिप्ट को फायर करने के लिए एकदम सही है जिसे डेटा वापस करने की आवश्यकता नहीं है। आपके मामले में api/users
, आप आमतौर पर उपयोगकर्ताओं के अपने संग्रह का प्रतिनिधित्व प्राप्त करने की अपेक्षा करते हैं। एक प्रतिक्रिया निकाय को एक बार भेजना और दूसरी बार नहीं भेजना असंगत और संभावित रूप से भ्रामक है।
मैं 200 का उपयोग क्यों करूँगा (ठीक है)
उपरोक्त कारणों (संगतता) के लिए, मैं एक खाली संग्रह का प्रतिनिधित्व लौटाऊंगा। मान लें कि आप XML का उपयोग कर रहे हैं। उपयोगकर्ताओं के एक गैर-खाली संग्रह के लिए एक सामान्य प्रतिक्रिया निकाय इस तरह दिख सकता है:
<users>
<user>
<id>1</id>
<name>Tom</name>
</user>
<user>
<id>2</id>
<name>IMB</name>
</user>
</users>
और यदि सूची खाली है, तो आप बस कुछ इस तरह से जवाब दे सकते हैं (जबकि अभी भी एक 200
):
<users/>
किसी भी तरह से, एक ग्राहक एक प्रतिक्रिया निकाय प्राप्त करता है जो एक निश्चित, प्रसिद्ध प्रारूप का अनुसरण करता है। कोई अनावश्यक भ्रम और स्थिति कोड जाँच नहीं है। इसके अलावा, किसी भी स्थिति कोड की परिभाषा का उल्लंघन नहीं किया जाता है। हर कोई खुश है।
आप JSON या HTML या जो भी प्रारूप आप उपयोग कर रहे हैं, वही कर सकते हैं।