2010-06-06 15 views
6

आरईएसटी में यादृच्छिक संख्या जेनरेटर को कैसे लागू किया जाना चाहिए?REST - एक यादृच्छिक संख्या प्राप्त करें या पोस्ट करें?

GET RANDOM/ 

या ..

POST RANDOM/ 

सर्वर एक अलग यादृच्छिक संख्या हर बार देता है।

मैं दोनों तरीकों से तर्क देख सकता हूं।

+2

मैं कहता हूँ मिलता है, क्या तर्क आप पोस्ट के लिए क्या है? यादृच्छिक संख्या प्राप्त करने से कोई सर्वर पक्ष नहीं बनता है, न ही कोई दुष्प्रभाव? – Mic

+0

तकनीकी रूप से यह सर्वर स्थिति को संशोधित करता है .. लेकिन यदि आप इसे इस तरह देखते हैं, * हर * किसी भी प्रकार का अनुरोध POST के पीछे होना चाहिए, क्योंकि वे सभी कुछ संशोधित करते हैं, तुच्छ या नहीं: पी (मैं इसकी अनुशंसा नहीं करता) – Jeriko

उत्तर

7

मैं कहता हूँ कि हम इस रूप में ही है एक पृष्ठ लौटाया गया जिसमें वर्तमान समय शामिल है - और इनमें से कई जीईटी का उपयोग करके किए जाते हैं। संक्षेप में, सर्वर की स्थिति में एक यादृच्छिक संख्या (या समय) नहीं आती है - दोनों समय और यादृच्छिक संख्याओं को बाहरी घटना के अवलोकन के रूप में वर्णित किया जा सकता है। जैसे http://random.org वायुमंडलीय शोर का उपयोग करें।

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

Expires: <Current Time> 
Last-Modified: <Current Time> 
Cache-Control: no-cache, must-revalidate 
Pragma: no-cache 

आप यह सुनिश्चित करें कि सेवा की सामग्री पहले ही समाप्त हो जाता है चाहते हैं:

के रूप में एक प्रतिक्रिया चिह्नित करने के लिए "पहले से ही समाप्त हो गई है," एक मूल सर्वर एक तारीख के बराबर है समय-सीमा समाप्त भेजता है दिनांक शीर्षलेख मान। (अनुभाग 13.2.4 में समाप्ति की गणना के लिए नियम देखें।)

+2

क्या आप वर्तमान समय से पहले समाप्ति तिथि सेट कर सकते हैं? –

2

निश्चित रूप से प्राप्त करें। भले ही यह सर्वर-साइड स्टेटस (यदि यह छद्म-आरएनजी का उपयोग करता है) को संशोधित कर सकता है, यह केवल एक कार्यान्वयन विवरण है जिसे क्लाइंट की परवाह नहीं करनी चाहिए।

-3
  • जीईटी के साथ आरईएसटी-कॉल की परिभाषा: परिणाम समान होना चाहिए -> प्राप्त नहीं होना चाहिए। PUT साथ बाकी-कॉल की
  • परिभाषा: कॉल का परिणाम दोहराने योग्य हो सकता है, सर्वर इसके साथ समस्या नहीं होना चाहिए -> उपयोग डाल

पोस्ट सबसे कमजोर तरीका है और इस्तेमाल किया जा सकता है, तो अन्य नहीं कर रहे हैं उपयोगी।

क्यों नहीं पाएं:-कॉल का परिणाम मुहर (कैश हेडर, ETag ओडर पारदर्शी प्रॉक्सी) हो सकता है और आप यादृच्छिक परिणाम मिलेंगे न ...

+0

लेकिन आप उचित शीर्षलेख का उपयोग कर कैशिंग को अक्षम कर सकते हैं। – erikkallen

+4

आरईएसटी यह नहीं कहता कि जीईटी को हमेशा उसी यूआरआई से एक ही प्रतिक्रिया के साथ जवाब देना चाहिए। प्रतिक्रिया एक ही संसाधन का प्रतिनिधित्व करना चाहिए, लेकिन सामग्री ओवरटाइम बदल सकते हैं। –

+0

@ डेरेल: आप सही हैं। जीईटी-अनुरोध संसाधन को संशोधित नहीं करता है, वैसे भी, लाइव समय में पुन: संसाधन बदल सकता है! –