सिद्धांत रूप में (प्राप्त होने पर अपने एपीआई द्वारा पार्स) में एक पोस्ट अनुरोध के मुख्य भाग में अपने मानकों को भेजने के लिए,, वहाँ कुछ भी नहीं एक अनुरोध भेजने से रोक रहा है GET
अनुरोध में शरीर। HTTP प्रोटोकॉल इसे अनुमति देता है, लेकिन इसमें कोई परिभाषित अर्थशास्त्र नहीं है, इसलिए जब आप क्लाइंट GET
पेलोड भेजता है तो यह दस्तावेज करने के लिए आप पर निर्भर करता है कि वास्तव में क्या होगा। उदाहरण के लिए, आपको परिभाषित करना होगा कि JSON बॉडी में पैरामीटर क्वेरीस्ट्रिंग पैरामीटर के बराबर हैं या पूरी तरह से कुछ और हैं।
हालांकि, चूंकि कोई स्पष्ट रूप से परिभाषित अर्थशास्त्र नहीं है, इसलिए आपको कोई गारंटी नहीं है कि आपके आवेदन और ग्राहक के बीच कार्यान्वयन इसका सम्मान करेगा। एक सर्वर या प्रॉक्सी पूरे अनुरोध को अस्वीकार कर सकता है, या शरीर को अनदेखा कर सकता है, या कुछ भी। टूटे हुए कार्यान्वयन से निपटने का सबसे अच्छा तरीका यह है कि इसे अपने आवेदन से हटा दिया गया है, इसलिए मैं कहूंगा कि आपके पास दो विकल्प हैं जिन्हें सर्वोत्तम प्रथाओं के रूप में माना जा सकता है।
सरल विकल्प का उपयोग GET
के बजाय अन्य उत्तरों द्वारा अनुशंसित किया गया है। चूंकि POST
HTTP द्वारा मानकीकृत नहीं है, इसलिए आपको यह दस्तावेज करना होगा कि यह वास्तव में कैसे काम करना चाहिए। यह कम से कम रेस्टस्ट विकल्प है, लेकिन यह ठीक है।
रीस्टफुल विकल्प, जिसे मैं पसंद करता हूं, GET
पेलोड को कभी भी छेड़छाड़ नहीं किया जाता है। फिर, अगर किसी के पास टूटा कार्यान्वयन होता है, तो आप X-HTTP-Method-Override
के साथ HTTP विधि को ओवरराइड करने की अनुमति देते हैं, जो POST
के साथ HTTP विधियों का अनुकरण करने के लिए ग्राहकों के लिए एक लोकप्रिय सम्मेलन है। इसलिए, यदि किसी ग्राहक के पास टूटा कार्यान्वयन होता है, तोके रूप में अनुरोध को X-HTTP-Method-Override: GET
विधि भेजकर, और आपके पास एक मिडलवेयर हो सकता है जो आपके एप्लिकेशन कार्यान्वयन से decoupled हो और विधि के अनुसार विधि को फिर से लिखता है। यदि आप एक शुद्धवादी हैं तो यह सबसे अच्छा विकल्प है।
स्रोत
2015-04-11 04:35:05
इस प्रश्न को सप्ताह में कम से कम एक बार SO पर पूछा जाता है। हमेशा दो ही विरोधों को उत्तर के रूप में प्रस्तावित किया जाता है: 1) हां, अनुरोध निकाय के साथ 'प्राप्त करें' पुनः है, 2) नहीं, यह नहीं है। हम सभी बार-बार हमारे विरोधियों को लिखने से कुछ भी नया नहीं सीखते हैं। अभी के लिए मैं इस सवाल को बंद करने के लिए वोट देता हूं क्योंकि यह एक डुप्लिकेट है। इसे भी बंद किया जाना चाहिए क्योंकि उत्तर प्राथमिक रूप से राय आधारित हैं। –