अद्यतन और हटाने के लिए HTTP स्थिति कोड?




http-status-codes (6)

200 और 204 के अलावा, 205 (सामग्री रीसेट करें) एक वैध प्रतिक्रिया हो सकती है।

सर्वर ने अनुरोध पूरा कर लिया है और उपयोगकर्ता एजेंट को दस्तावेज़ दृश्य को रीसेट करना चाहिए जिसके कारण अनुरोध भेजा जा सकता है ... [उदाहरण] उस फ़ॉर्म को साफ़ करना जिसमें इनपुट दिया गया है।

UPDATE ( PUT ) और DELETE लिए मुझे किस स्थिति कोड को सेट करना चाहिए (उदाहरण के लिए उत्पाद सफलतापूर्वक अपडेट किया गया है)?



चूंकि सवाल 200 9 बनाम 204 को वापस लौटाए जाने पर सवाल उठता है, इसलिए कुछ लोग इस बात पर विचार करने लायक हैं कि कुछ लोग लिंक के साथ एक इकाई को वापस करने की सलाह देते हैं ताकि वरीयता 200 के लिए हो

"204 (कोई सामग्री नहीं) लौटने के बजाय, एपीआई सहायक होनी चाहिए और जाने के लिए जगहों का सुझाव देना चाहिए। इस उदाहरण में मुझे लगता है कि प्रदान करने के लिए एक स्पष्ट लिंक है 'somewhere.com/container/' (minus 'resource') " - कंटेनर जिस से क्लाइंट ने अभी संसाधन को हटा दिया है। शायद ग्राहक अधिक संसाधनों को हटाना चाहता है, इसलिए यह एक सहायक लिंक होगा। "

http://blog.ploeh.dk/2013/04/30/rest-lesson-learned-avoid-204-responses/

यदि किसी ग्राहक को 204 प्रतिक्रिया का सामना करना पड़ता है, तो यह या तो छोड़ सकता है, एपीआई के प्रवेश बिंदु पर जा सकता है, या पिछले संसाधन पर वापस जा सकता है। न तो विकल्प विशेष रूप से अच्छा है।

व्यक्तिगत रूप से मैं नहीं कहूंगा कि 204 गलत है (न ही लेखक है; वह कहता है "कष्टप्रद") क्योंकि ग्राहक पक्ष में अच्छे कैशिंग के कई फायदे हैं। सबसे अच्छा तरीका किसी भी तरह से होना चाहिए।


जब संसाधन संशोधित होता है, तो प्रतिक्रिया कोड 200 होना चाहिए ("ठीक है") । यदि संसाधन स्थिति इस तरह से बदलती है जो यूआरआई को संसाधन में बदलती है (उदाहरण के लिए, उपयोगकर्ता खाते का नाम बदल दिया जाता है), प्रतिक्रिया कोड 301 ("स्थायी रूप से स्थानांतरित हो जाता है) और स्थान शीर्षलेख को नया यूआरआई प्रदान करना चाहिए।

जब कोई ऑब्जेक्ट हटा दिया जाता है, तो प्रतिक्रिया कोड 200 होना चाहिए ("ठीक है")।

अधिक जानकारी के लिए नीचे दिए गए लिंक का पालन करें - बाकी के लिए स्टेटस कोड


यहाँ कुछ युक्तियाँ हैं:

DELETE

  • 200 (यदि आप प्रतिक्रिया में कुछ अतिरिक्त डेटा भेजना चाहते हैं) या 204 (अनुशंसित)।

  • 202 ऑपरेशन हटा दिया गया अभी तक प्रतिबद्ध नहीं किया गया है।

  • अगर हटाने के लिए कुछ भी नहीं है, तो 204 या 404 का उपयोग करें (डिलीट ऑपरेशन बेवकूफ है, पहले से हटाए गए आइटम को हटाएं ऑपरेशन सफल है , इसलिए आप 204 वापस कर सकते हैं, लेकिन यह सच है कि idempotent एक ही प्रतिक्रिया का जरूरी नहीं है)

अन्य त्रुटियां:

  • 400 खराब अनुरोध (विकृत वाक्यविन्यास या एक बुरी क्वेरी अजीब लेकिन संभव है)।
  • 401 अनधिकृत प्रमाणीकरण विफलता
  • 403 निषिद्ध : प्राधिकरण विफलता या अमान्य आवेदन आईडी।
  • 405 अनुमत नहीं है । ज़रूर।
  • जटिल प्रणाली में 40 9 संसाधन संघर्ष संभव हो सकता है।
  • और त्रुटियों के मामले में 501 , 502

डाल

यदि आप संग्रह का तत्व अपडेट कर रहे हैं

  • 200/204 उपरोक्त DELETE के समान कारणों से।
  • 202 अगर ऑपरेशन अभी तक नहीं किया गया है।

संदर्भित तत्व मौजूद नहीं है:

  • पुट 201 हो सकता है (यदि आपने तत्व बनाया है क्योंकि यह आपका व्यवहार है)
  • 404 यदि आप PUT के माध्यम से तत्व बनाना नहीं चाहते हैं।

  • 400 खराब अनुरोध (हटाए गए वाक्य के मुकाबले विकृत वाक्यविन्यास या खराब क्वेरी अधिक आम है)।

  • 401 अनधिकृत
  • 403 निषिद्ध : प्रमाणीकरण विफलता या अमान्य अनुप्रयोग आईडी।
  • 405 अनुमत नहीं है । ज़रूर।
  • जटिल प्रणाली में 40 9 संसाधन संघर्ष संभव हो सकता है, जैसा कि DELETE में है।
  • और त्रुटियों के मामले में 501 , 502

संक्षिप्त उत्तर: पुट और डिलीट दोनों के लिए, आपको 200 (ठीक) या 204 (कोई सामग्री नहीं) भेजना चाहिए।

लंबा उत्तर: यहां एक पूर्ण निर्णय आरेख है (बढ़ाई करने के लिए क्लिक करें)।

स्रोत: https://github.com/for-GET/http-decision-diagram






http-status-codes