सामान्य तौर पर आपके पास एक समापन बिंदु होता है जो x के पूरे संग्रह का प्रतिनिधित्व करता है :
/products
कहते हैं, आप किसी एकल उत्पाद को अद्यतन करना चाहते हैं, आप एक PUT करना चाहते हैं /products/{id}
। यदि आप किसी एक उत्पाद को आंशिक रूप से अपडेट करना चाहते हैं (हर क्षेत्र को अपडेट नहीं कर रहे हैं), तो आप PATCH to का भी उपयोग कर सकते हैं /products/{id}
। वही एकल इकाई ( DELETE/products/{id}
) को हटाने के लिए जाता है ।
यदि आप किसी एकल स्रोत को लक्षित करना चाहते हैं , तो आप पथ के माध्यम से अर्हता प्राप्त करते हैं, आप किस एकल स्रोत को संशोधित करना चाहते हैं।
इस योजना को तोड़ने वाली एकमात्र कार्रवाई एक रेसर का निर्माण है। जब एक ressource आप एक पूरे के रूप संग्रह को लक्ष्य बनाने का कहना है कि पोस्ट करने के लिए /products
।
उस ने कहा, यह स्पष्ट होना चाहिए, कि एक पूरे के रूप में संग्रह को प्रभावित करने वाले संचालन के लिए लक्ष्य, उपयुक्त संग्रह-समापन बिंदु पर जाना चाहिए।
उदाहरण के लिए, आप लाल रंग के उत्पादों के एक सबसेट को पुनः प्राप्त करना चाहते हैं, आप इसके लिए पूछते हैं
प्राप्त करने के लिए /products?colour=red
।
इसलिए, यदि आप इन सभी को हटाना चाहते हैं, तो आप DELETE करते हैं /products?colour=red
। या यदि आप कुछ उत्पादों को हटाना चाहते हैं id
, तो आप DELETE कर सकते हैं /products?id=1&id=2&id=3
।
सूत्रों के थोक निर्माण के बारे में क्या ? बस अपने संग्रह को पोस्ट करें । वही PUT और PATCH के लिए जाता है ।[{...},{...},{...}]
/products
यह वास्तव में सीधा है।
अपने सवालों के जवाब देने के लिए:
यदि मुझे संग्रह में जोड़ने की आवश्यकता है, तो क्या यह ठीक है कि मैं केवल कुछ उत्पादों को PUT के साथ पास करूं?
यह केवल ओके नहीं है, आपको इसे वैसा करने के लिए प्रोत्साहित किया जाता है।
अगर मुझे संग्रह से कुछ उत्पादों को हटाने की आवश्यकता है, तो क्या यह ठीक है कि मैं DELETE के साथ फ़िल्टर डेटा (आईडी की एक सरणी) पास करता हूं?
यह ठीक है। जैसा कि एन्नेको अलोंसो ने लिखा है, कभी-कभी "नियंत्रक" -प्रोप्वाइंट्स के माध्यम से इनकैप्सुलेट किए गए बल्कऑपरेशन होते हैं , अर्थात एक POST का उपयोग ट्रिगर (जटिल) संचालन के लिए किया जाता है।