कौन सी HTTP विधियां सीआरयूडी विधियों से मेल खाते हैं?




rest crud (8)

रीस्टफुल स्टाइल प्रोग्रामिंग में, हमें HTTP बिल्डिंग का उपयोग हमारे बिल्डिंग ब्लॉक के रूप में करना चाहिए। मैं थोड़ा उलझन में हूं हालांकि क्लासिक सीआरयूडी तरीकों से कौन सी विधियां मिलती हैं। प्राप्त / पढ़ें और हटाएं / हटाएं पर्याप्त स्पष्ट हैं।

हालांकि, पुट / पोस्ट के बीच क्या अंतर है? क्या वे बनाएं और अपडेट के साथ एक से मेल खाते हैं?


अभी (2016) नवीनतम HTTP क्रियाएं प्राप्त, पोस्ट, PATCH , पुट और हटाएं हैं

अवलोकन

  • HTTP प्राप्त करें - चुनें / अनुरोध करें
  • HTTP पुट - अद्यतन करें
  • HTTP पोस्ट - INSERT / बनाएँ
  • HTTP PATCH - जब एक पूर्ण संसाधन प्रतिनिधित्व टिंग करना बोझिल होता है और अधिक बैंडविड्थ का उपयोग करता है, उदाहरण के लिए: जब आपको आंशिक रूप से कॉलम अपडेट करना होता है
  • HTTP हटाएं - हटाएं

उम्मीद है की यह मदद करेगा!

यदि आप आरईएसटी एपीआई डिजाइन करने में रुचि रखते हैं तो यह एक उत्तरदायी पढ़ने के लिए है! वेबसाइट ऑनलाइन संस्करण github repository


यह ठोस स्थिति पर निर्भर करता है .. लेकिन सामान्य रूप से:

PUT = संसाधन के एक ठोस यूआरआई के साथ एक ठोस संसाधन अद्यतन या बदलें।

POST = दिए गए यूआरआई के स्रोत के तहत एक नया संसाधन बनाएं।

अर्थात

ब्लॉग पोस्ट संपादित करें:

पुट: / ब्लॉग / एंट्री / 1

एक नया बनाएँ:

पोस्ट: / ब्लॉग / एंट्री

PUT कुछ परिस्थितियों में एक नया संसाधन बना सकता है जहां अनुरोध से पहले नए संसाधन का यूआरआई स्पष्ट है। POST का उपयोग कई अन्य उपयोग मामलों को लागू करने के लिए भी किया जा सकता है, जो दूसरों द्वारा कवर नहीं होते हैं (प्राप्त करें, हटाएं, हटाएं, सिर, विकल्प)

सीआरयूडी सिस्टम के लिए सामान्य समझ GET = अनुरोध है, POST = create, Put = update, DELETE = हटाएं


वास्तव में यह बताते हुए तूफान द्वारा एक महान यूट्यूब वीडियो टॉक है, यूआरएल वीडियो के सही हिस्से में जाना चाहिए:

तूफान यूट्यूब वीडियो

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


सिम्फनी प्रोजेक्ट सीआरयूडी विधियों के साथ अपनी HTTP विधियों को शामिल रखने की कोशिश करता है, और उनकी सूची उन्हें निम्नानुसार संबद्ध करती है:

  • सर्वर से संसाधन प्राप्त करें
  • पोस्ट सर्वर पर एक संसाधन बनाएँ
  • सर्वर पर संसाधन अद्यतन करें
  • सर्वर से संसाधन हटाएं हटाएं

यह ध्यान देने योग्य है कि, जैसा कि वे उस पृष्ठ पर कहते हैं, "असल में, कई आधुनिक ब्राउज़र पुट और डिलीट विधियों का समर्थन नहीं करते हैं।"

मुझे जो याद है, सिम्फनी "नकल" पुट और उन ब्राउज़रों के लिए हटा दें जो सैद्धांतिक रूप से सही HTTP विधि का उपयोग करने के करीब होने की कोशिश करने के लिए, जब कोई ब्राउज़र समर्थन नहीं करता है, यह।


Create = PUT with a new URI
         POST to a base URI returning a newly created URI
Read   = GET
Update = PUT with an existing URI
Delete = DELETE

PUT PUT के साथ उपयोग किए गए यूआरआई के अस्तित्व के आधार पर बनाएं और अपडेट दोनों को मैप कर सकता है।

पोस्ट करने के लिए पोस्ट नक्शे।

सुधार: POST अद्यतन करने के लिए भी मानचित्र कर सकता है हालांकि इसे आमतौर पर बनाने के लिए उपयोग किया जाता है। पोस्ट आंशिक अपडेट भी हो सकता है इसलिए हमें प्रस्तावित पैच विधि की आवश्यकता नहीं है।


आम तौर पर बोलते हुए, यह वह पैटर्न है जिसका मैं उपयोग करता हूं:

  • HTTP प्राप्त करें - चुनें / अनुरोध करें
  • HTTP पुट - अद्यतन करें
  • HTTP पोस्ट - INSERT / बनाएँ
  • HTTP हटाएं - हटाएं

मैं वही जवाब खोज रहा था, आईबीएम क्या कहता है। आईबीएम लिंक

POST            Creates a new resource.
GET             Retrieves a resource.
PUT             Updates an existing resource.
DELETE          Deletes a resource.

आरईएसटी के निर्माण खंड मुख्य रूप से संसाधन (और यूआरआई) और हाइपर्मियाडिया हैं। इस संदर्भ में, संसाधन का प्रतिनिधित्व प्राप्त करने का तरीका है (जिसे वास्तव में सीआरयूडी शर्तों में एक SELECT में मैप किया जा सकता है)।

हालांकि, आपको सीआरयूडी संचालन और HTTP क्रियाओं के बीच एक-से-एक मैपिंग की अपेक्षा नहीं करनी चाहिए। PUT और POST बीच मुख्य अंतर उनकी बेवकूफ संपत्ति के बारे में है। POST आंशिक अद्यतनों के लिए भी अधिक सामान्य रूप से उपयोग किया जाता है, क्योंकि PUT आमतौर पर संसाधन का पूर्ण नया प्रतिनिधित्व भेजने का तात्पर्य है।

मैं इसे पढ़ने का सुझाव दूंगा:

HTTP विनिर्देश भी एक उपयोगी संदर्भ है:

पुट विधि अनुरोध करता है कि संलग्न इकाई आपूर्ति अनुरोध-यूआरआई के तहत संग्रहीत की जाए।

[...]

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





http-method