2012-05-24 15 views
7

उदाहरण के लिए, यदि मैं कोई आइटम प्राप्त करने के लिए GET को कॉल करता हूं, तो इसे हटाएं और इसे फिर से प्राप्त करें, दूसरा जीईटी कैसे काम करना चाहिए?आरईएसटी में पुराने डेटा को कैसे संभालें?

मेरा मतलब है, आरईएसटी सिद्धांतों का सही ढंग से पालन करके, ऐसा करने में सही दृष्टिकोण क्या है क्योंकि जीईटी को कैश किया जा सकता है और सब कुछ? आरईएसटी में पुराने डेटा को संभालने का दृष्टिकोण क्या है?

+0

यदि आपने अभी आइटम हटा दिया है तो आप इसे फिर से "प्राप्त" करने का प्रयास क्यों करेंगे? यह अस्तित्व में नहीं होगा। शायद मुझे कुछ याद आ रहा है या सवाल स्पष्ट नहीं था। –

+0

@ ब्रेंट पैबस्ट: यूआई एप्लिकेशन में उदाहरण लिंक के लिए विचार करें जहां पॉपअप में डिलीट होता है लेकिन जीईटी लिंक ओपनर पेज में होता है और अपडेट नहीं होता है, या मेल द्वारा स्थानांतरित किया जाता है और उपयोगकर्ता उन्हें सीधे ब्राउज़र एड्रेस बार में डाल देता है डिलीट इत्यादि। यह कैश के अधीन है! विचार यह है कि, यदि आइटम अब और नहीं है तो जीईटी कैसे काम करना चाहिए। सभी कैश अक्षम करें? क्या यह कुछ कैश रखने के लिए स्वीकार्य है? इन सब के लिए आरईएसटी दृष्टिकोण क्या है? – JohnDoDo

+2

दूसरा जीईटी स्वाभाविक रूप से HTTP कोड '404 नहीं मिला 'वापस कर देगा। कैशिंग एक और मामला है जिसके लिए मैं आश्चर्यजनक अपारदर्शी उत्तर प्रदान करूंगा: "यह निर्भर करता है"। लेकिन अगर कोई दूसरा जीईटी है, तो यह अपेक्षाकृत स्पष्ट है कि यह 404 का उत्पादन करेगा? –

उत्तर

4

सबसे पहले, व्यवहार इस बात पर निर्भर करता है कि डेलेटी कॉल इसके प्रतिक्रिया कोड के रूप में क्या लौटाता है।

यदि DELETE 200 - OK या 204 - No Content देता है तो ग्राहक को GET के अगले कॉल पर 404 - Not Found प्राप्त करना चाहिए। ऐसा इसलिए है क्योंकि 202 और 204 का मतलब है कि संसाधन तुरंत हटा दिया गया था।

हालांकि अगर DELETE 202 - Accepted लौटाता है, तो एक मौका है कि ग्राहक सफलतापूर्वक कुछ समय बाद संसाधन प्राप्त कर पाएंगे। ऐसा इसलिए है क्योंकि 202 का अर्थ है कि संसाधन को हटाने के लिए चिह्नित किया गया है, लेकिन जरूरी नहीं कि तुरंत साफ हो जाए।

दूसरा, यदि कोई कैश शामिल है, तो व्यवहार को तब तक बनाए रखा जाना चाहिए जब कोई कैश मौजूद न हो। एक सफल डिलीट को हमेशा किसी भी कैश की गई प्रतियों के अतिरिक्त डेटा की वास्तविक उत्पत्ति से हटा देना चाहिए।

0

मूल रूप से एक डीईएलटीईई के बाद एक जीईटीटी को बताया गया है कि कैशिंग के स्थान पर होने पर चाहे कोई भी 404 त्रुटि उत्पन्न हो। लॉजिक कोड लगातार स्टोर के साथ-साथ इन-मेमोरी स्टोर या कैश से रिकॉर्ड को हटाने के लिए पर्याप्त स्मार्ट होना चाहिए। इसके अलावा यूआई 404 के परिणाम को संभालने में सक्षम होना चाहिए जिसके साथ आप उचित मानते हैं।

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