2010-12-10 9 views
8

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

मैंने कुछ नेस्टेड संसाधनों (ब्लॉग पोस्ट में टिप्पणियां) परिभाषित की हैं, और यह विकल्प इस तथ्य को प्रतिबिंबित करता है कि टिप्पणी ब्लॉग पोस्ट दस्तावेज़ में मोंगो में घोंसला है।

मुझे संदर्भ से अलग-अलग टिप्पणियों की सेवा करने में कोई दिलचस्पी नहीं है, इसलिए मैंने नेस्टेड संसाधनों के लिए जीईटी लागू करने में स्थगित कर दिया है। हालांकि, टिप्पणियों के संग्रह में पोस्टिंग को कार्यान्वित करना और एक टिप्पणी यूरी पर पूट करना समझदारी है।

विशिष्ट प्रश्न:

1) यह भावना एक 201 के साथ एक पोस्ट है और एक स्थान हैडर माता पिता संसाधन करने के लिए सेट करने के लिए प्रतिक्रिया करने के लिए बनाने के करता है? यदि नहीं, तो ग्राहक पर नेविगेशन विकल्पों को सूचित करने के लिए मैं मूल स्थान को कैसे संवाद करूं?

2) PUT के लिए इसी तरह का सवाल, मैं क्लाइंट को सबसे अच्छा कैसे संवाद कर सकता हूं कि इसे अपने अद्यतन का पता लगाने के लिए मूल संसाधन को देखना चाहिए? (अधिमानतः क्लाइंट के बिना मेरी यूरी योजना के बारे में धारणाएं करना)। क्या स्थान शीर्षलेख 200 पर उचित है?

उत्तर

12

हालांकि मैंने इसे कभी नहीं किया है, मैंने इस उद्देश्य के लिए सामग्री-स्थान शीर्षलेख का उपयोग करने वाले लोगों के बारे में सुना है। सामग्री-स्थान का उपयोग संसाधन के स्थान की पहचान करने के लिए किया जाता है जो लौटाई गई इकाई द्वारा दर्शाया जाता है।

आपके पुट और पोस्ट के मामले में, आप वास्तव में पूरे ब्लॉग पोस्ट को वापस नहीं करना चाहते हैं, इसलिए मुझे यकीन नहीं है कि सामग्री-स्थान शीर्षलेख वापस करने के लिए कितना मान्य है, भले ही आप कोई प्रतिनिधित्व नहीं दे रहे हों प्रतिक्रिया में।

कहा करने के बाद कि, मैं किसी भी नकारात्मक प्रभाव के बारे में सोच नहीं सकते, इसलिए यहाँ मैं क्या सुझाव दे रहा हूँ है:

PUT /Blog/343/Comment/23 
=> 
200 OK 
Content-Location: /Blog/343 


POST /Blog/343/Comments 
=> 
201 Created 
Location: /Blog/343/Comment/24 
Content-Location: /Blog/343 
+0

महान सूचक! हम इसे "न्यूनतम प्रतिनिधित्व" कहते हैं = o) – BnWasteland

+0

@BnWasteland उन मामलों के लिए जहां आप बड़े संसाधन के टुकड़े अपडेट करने के लिए PUT का उपयोग करते हैं, मैं "मिनी-पुट" दृष्टिकोण को कॉल कर रहा हूं। –

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