2010-06-30 15 views
5

मुझे यकीन नहीं है कि मुझे एक आरईएसटी संसाधन के व्यक्तिगत गुणों को अपडेट करने के बारे में कैसे जाना चाहिए। निम्नलिखित उदाहरण पर विचार करें:मुझे एक आरईएसटी संसाधन कैसे अपडेट करना चाहिए?

# HTTP GET to /users/1.xml 
<?xml version="1.0" encoding="UTF-8" ?> 
<response> 
    <user> 
     <id>1</id> 
     <name>John Doe</name> 
     <email>[email protected]</email> 
    </user> 
</response> 

मुझे जॉन के ईमेल को अपडेट करने के लिए कैसे सुविधाजनक बनाना चाहिए? HTTP PUT दिमाग में आता है, लेकिन मैं संसाधन को संशोधित करने के लिए एक पूर्ण एक्सएमएल (HTTP जीईटी प्रतिक्रिया से मेल खाने) की आवश्यकता के जरिए अपने ग्राहकों पर इसे कठिन बना रहा हूं।

PUT विधि अनुरोध करता है कि संलग्न इकाई आपूर्ति अनुरोध- URI के तहत संग्रहीत किया। यदि अनुरोध-यूआरआई पहले से ही मौजूदा संसाधन को संदर्भित करता है, संलग्न इकाई को मूल सर्वर पर रहने वाले किसी के संशोधित संस्करण के रूप में माना जाना चाहिए।

क्या कोई अन्य तरीका है?

उत्तर

7

तो अपने सर्वर ढांचे इसे संभाल करने के लिए पर्याप्त लचीला है, आप कर सकते हैं:

Request: 
PUT /users/1/email 
Content-Type: text/plain 

[email protected] 

Response: 
200 OK 
Content-Location: /users/1 

एक यूआरएल का उपयोग कर अपने स्वयं के संसाधन के रूप में ईमेल का उल्लेख करने से, आप एक सरल प्रारूप का उपयोग कर यह करने के लिए सीधे डाल सकते हैं पाठ/सादा की तरह। प्रतिक्रिया में, सामग्री-स्थान यूआरएल क्लाइंट को एक संकेत देता है कि परिवर्तन के उपयोगकर्ता संसाधन पर असर पड़ा है।

पैच विधि भी एक और तरीका है कि आप आंशिक अपडेट कर सकते हैं। यह एक नई पेश की गई विधि है और अभी तक एक्सएमएल डिफ दस्तावेज़ भेजने के लिए कोई मानक प्रारूप नहीं है। इसलिए, यदि आप इस दृष्टिकोण को लेते हैं तो आपको अधिक मार्गदर्शन नहीं मिलेगा।

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

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