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




http-status-codes (7)

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

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

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


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

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



एक पुट अनुरोध के लिए: HTTP 200 या HTTP 204 को "संसाधन सफलतापूर्वक अपडेट किया गया" इंगित करना चाहिए।

एक डेली अनुरोध के लिए: HTTP 200 या HTTP 204 को "संसाधन सफलतापूर्वक हटाया गया" इंगित करना चाहिए। HTTP 202 को भी वापस किया जा सकता है जो दर्शाता है कि निर्देश सर्वर द्वारा स्वीकार किया गया था और "संसाधन को हटाने के लिए चिह्नित किया गया था"।

9.6 पुट

यदि कोई मौजूदा संसाधन संशोधित किया गया है, तो 200 (ठीक) या 204 (कोई सामग्री नहीं) प्रतिक्रिया कोड> अनुरोध के सफल समापन को इंगित करने के लिए भेजा जाना चाहिए।

9.7 हटाएं

एक सफल प्रतिक्रिया 200 (ठीक) होनी चाहिए यदि प्रतिक्रिया में स्थिति का वर्णन करने वाली इकाई शामिल है, 202 (स्वीकृत) अगर कार्रवाई अभी तक लागू नहीं हुई है, या 204 (कोई सामग्री नहीं) यदि कार्रवाई लागू की गई है लेकिन प्रतिक्रिया में शामिल नहीं है एक इकाई।

स्रोत: w3.org: HTTP / 1.1 विधि परिभाषाएं

HTTP 200 ओके: सफल HTTP अनुरोधों के लिए मानक प्रतिक्रिया। वास्तविक प्रतिक्रिया उपयोग की गई विधि विधि पर निर्भर करेगी।

HTTP 204 कोई सामग्री नहीं: सर्वर ने सफलतापूर्वक अनुरोध संसाधित किया, लेकिन किसी भी सामग्री को वापस नहीं कर रहा है

स्रोत: HTTP स्थिति कोड की सूची: 2xx सफलता


जून 2014 में RFC7231 अप्रचलित आरएफसी 2616। यदि आप HTTP पर आरईएसटी कर रहे हैं तो RFC7231 बताता है कि जीईटी, पुट, पोस्ट और डिलीट से वास्तव में क्या व्यवहार अपेक्षित है


चूंकि सवाल 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 होना चाहिए ("ठीक है")।

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





http-status-codes