क्या HTTP DELETE अनुरोध में पैरामीटर प्रदान करने के बारे में कुछ भी गैर-रेस्टफुल है?
मेरा परिदृश्य यह है कि मैं मॉडलिंग कर रहा हूं "क्या आप सुनिश्चित हैं कि आप उसे हटाना चाहते हैं?" परिदृश्य। कुछ मामलों में, संसाधन की स्थिति बताती है कि अनुरोधित हटाएं अमान्य हो सकती हैं। आप शायद कुछ परिदृश्यों की स्वयं कल्पना कर सकते हैं जहाँ एक विलोपन की पुष्टि आवश्यक है
हमने जो समाधान अपनाया है, उसे हटाने के अनुरोध के लिए एक पैरामीटर पास करना है ताकि यह संकेत मिल सके कि हटाए जाने के साथ आगे बढ़ना ठीक है ("? Force_delete = true")
जैसे
DELETE http://server/resource/id?force_delete=true
मेरा मानना है कि यह अभी भी बाकी है:
(ए) DELETE के शब्दार्थ को नहीं बदला जा रहा है - उपयोगकर्ता अभी भी एक सामान्य DELETE अनुरोध भेज सकता है लेकिन यह 409 के साथ विफल हो सकता है और प्रतिक्रिया का निकाय बताएगा कि क्यों। मेरा कहना है कि विफल हो सकता है क्योंकि (कुछ कारणों से समझाने लायक नहीं) कुछ अवसरों पर उपयोगकर्ता को संकेत देने का कोई कारण नहीं है।
(ख) रॉय के शोध में ऐसा कुछ भी नहीं है जिससे यह पता चल सके कि यह रेस्ट की भावना के खिलाफ है - ऐसा क्यों होगा क्योंकि HTTP केवल REST का कार्यान्वयन है इसलिए HTTP पैरामीटर्स को क्यों पास किया जाएगा
क्या कोई मुझे निश्चित कथन पर इंगित कर सकता है कि नाखूनों का कारण यह क्यों नहीं है?
संबंधित प्रश्न पर, यदि उपयोगकर्ता बल_डेली निर्दिष्ट नहीं करता है तो मैं वापस लौट रहा हूं 409 Conflict
- क्या यह सबसे उपयुक्त प्रतिक्रिया कोड है?
ऊपर का पालन करें
कुछ और शोधों के बाद, मुझे लगता है कि DELETE में मापदंडों को जोड़ने से कई सिद्धांतों का उल्लंघन हो सकता है।
पहला यह है कि कार्यान्वयन संभवतः "यूनिफ़ॉर्म इंटरफ़ेस" का उल्लंघन करता है ( रॉय के शोध प्रबंध की धारा 5.1.5 देखें)
'Force_delete' जोड़कर हम पहले से ही परिभाषित DELETE पद्धति पर एक अतिरिक्त बाधा जोड़ रहे हैं। यह अड़चन हमारे लिए ही सार्थक है।
आप यह भी तर्क दे सकते हैं कि यह "5.1.2 क्लाइंट-सर्वर" का उल्लंघन करता है क्योंकि पुष्टि संवाद वास्तव में एक यूआई चिंता है और फिर से सभी ग्राहक विलोपन की पुष्टि नहीं करना चाहेंगे।
किसी को सुझाव?