अनुरोधों को संभालने के लिए AJAX का उपयोग करके अनुरोधों को संभालने के लिए REST का उपयोग कब किया जाता है [बंद]


12

मेरे वेब पेज पर, यदि मैं डायनेमिक ड्रॉपडाउन (उदाहरण के लिए देश के आधार पर शहर के नाम) प्रदर्शित करना चाहता हूं, तो मैं AJAX का उपयोग करके कर सकता हूं। लेकिन मैं इसे REST कॉल का उपयोग करके भी कर सकता हूं। तो मुझे कौन सा उपयोग करना चाहिए?

मेरी समस्या यह है कि मुझे वास्तव में REST और किसी भी अन्य HTTP ब्राउज़र अनुरोध के बीच अंतर नहीं मिलता है। (उर्फ एक फॉर्म सबमिट)। मैंने REST की औपचारिक परिभाषा को देखा है और यह HTTP अनुरोध के समान प्रतीत होता है। तो REST AJAX से किस प्रकार भिन्न है?


6
जैसा कि आपने अनुमान लगाया, वे परस्पर अनन्य नहीं हैं।
सेठ बत्तीन

2
जब आपका एप्लिकेशन किसी अन्य एप्लिकेशन द्वारा एक्सेस किया जाता है, तो आप आमतौर पर REST API का उपयोग करते हैं
Gian Acuna

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

2
@downvoter --- नफरत क्यों?
कौशिक

जवाबों:


26

मैं इसे AJAX का उपयोग करके कर सकता हूं। लेकिन मैं इसे REST कॉल का उपयोग करके भी कर सकता हूं।

उम नहीं। वे दोनों पूरी तरह से ऑर्थोगोनल हैं। यदि आप किसी सर्वर से प्राप्त होने वाले डेटा के साथ अपने पेज को अपडेट करना चाहते हैं, तो आप इसे AJAX का उपयोग करके करेंगे । और कोई रास्ता नहीं है। और वह AJAX कॉल REST, या कुछ और का उपयोग कर सकता है।

मेरी समस्या यह है कि मुझे वास्तव में REST और HTTP ब्राउज़र अनुरोध के बीच अंतर नहीं मिलता है। (उर्फ एक फॉर्म सबमिट)। मैंने REST की औपचारिक परिभाषा को देखा है और यह एक HTTP अनुरोध की तरह लगता है।

एक बाकी कॉल है एक HTTP अनुरोध, हमेशा। हालाँकि इसका उपयोग नियमित ब्राउज़र कॉल को संभालने के लिए किया जा सकता है (जैसे फॉर्म सबमिट्स) और पूर्ण HTML पृष्ठों को वापस करने के लिए, इसका उपयोग आमतौर पर एपीआई कॉल को संभालने के लिए किया जाता है जो केवल डेटा (आमतौर पर JSON प्रारूप में) लौटाते हैं।

तो इसका एक अलग नाम क्यों है?

क्योंकि REST HTTP का उपयोग करने की एक विशिष्ट शैली है, यकीनन इसका उपयोग करना क्योंकि यह मूल रूप से उपयोग करने के लिए था, लेकिन जो ज्यादातर लोगों को "नहीं मिला" और इस प्रकार लगभग 2 दशकों तक शायद ही कभी इस्तेमाल किया गया था।

विशेष रूप से, REST का अर्थ है कि वह कौन सी इकाई है जिसे आप URL में ही प्राप्त करना चाहते हैं या उसमें हेरफेर करना चाहते हैं (आमतौर पर एक ID के माध्यम से) और एन्कोडिंग का उपयोग आप उस पर क्या कार्रवाई करना चाहते हैं जो HTTP विधि में उपयोग किया जाता है (प्राप्त करने के लिए प्राप्त करें, बदलने के लिए पोस्ट, बदलने के लिए पोस्ट करें) , हटाने के लिए DELETE)।


6
REST को हमेशा HTTP पर नहीं होना चाहिए। कोई भी प्रोटोकॉल REST हो सकता है यदि वह विधियों के सेट को फिट बैठता है। लेकिन वेब एप्लिकेशन के संदर्भ में यह निश्चित रूप से HTTP होगा।
Jan Hudec

10
@ जैन हडेक: क्या अन्य प्रोटोकॉल के साथ REST के वास्तविक उदाहरण हैं?
माइकल बोर्गवर्ड

6

वैसे मुझे लगता है कि आपको सबसे पहले यह समझने की जरूरत है कि AJAX और REST वास्तव में आपके उपयोग के मामले के लिए विकल्प नहीं हैं। AJAX अतुल्यकालिक जावास्क्रिप्ट और XML के लिए खड़ा है इसलिए यदि आप ब्राउज़र अनुरोध के समाप्त होने के बाद डेटा लोड करने के लिए जावास्क्रिप्ट का उपयोग कर रहे हैं तो आप AJAX कर रहे हैं।

दूसरी ओर REST प्रतिनिधि स्टेट ट्रांसफर के लिए खड़ा है, जैसा कि स्टीफन बिललेट ने बताया कि डेटा ट्रांसफर करने के लिए HTTP रिक्वेस्ट का इस्तेमाल करता है। तो REST वास्तव में AJAX करने का एक तरीका है। SOAP एक और होगा लेकिन यह आपके प्रश्न के लिए अपमानजनक है। इसलिए आपका सवाल यह होना चाहिए: "मेरे उपयोग के मामले में कौन सी तकनीक सबसे अच्छी है?"

इस मामले में मैं आपके ड्रॉपडाउन में उपयोग किए जाने वाले डेटा की मात्रा के बारे में सोचने की सलाह दूंगा। यदि आपके पास कुछ ही तत्व हैं, तो आप उन सभी को अपने पेज में ले सकते हैं और एप्रीप्रिएट करने के लिए केवल जावास्क्रिप्ट का उपयोग करें। एक दूसरा विकल्प JSON के साथ पुनर्वसन के रूप में एक REST कॉल का उपयोग किया जा सकता है क्योंकि यह जावास्क्रिप्ट के साथ प्रयोग करना आसान है और बहुत हल्का है जो निश्चित रूप से AJAX करने का मतलब होगा।


जब मैं वेब पेज के एक हिस्से को लोड करने के लिए अजाक्स का उपयोग करता हूं, तो यह कि AJAX अनुरोध एक सर्वर पर http कॉल है ... अधिक विशेष रूप से..यह मेरे सर्वलेट पर एक विशिष्ट विधि को कॉल करता है। क्या यह कहना सुरक्षित है कि इस मामले में AJAX REST का उपयोग कर रहा है?
कौशिक

वैसे यह उस पद्धति पर निर्भर करता है जिसे आप बुला रहे हैं। यदि विधि जैसे कि एक Restful WebService की बाधाओं को पूरा करती है ( en.wikipedia.org/wiki/Representational_state_transfer ) तो आप हां कह सकते हैं।
लेसस्टैट

4

REST HTTP, GET, POST, PUT, DELETE का उपयोग क्रमशः सर्वर पर संसाधनों को प्राप्त करने, सम्मिलित करने, अद्यतन करने, हटाने के लिए कर रहा है। उदाहरण के लिए url के साथ GET: कंट्रोलर / कस्टमर / {id}
विकल्प एक कंट्रोलर के तरीकों को जोड़ रहा है जैसे GetCustomerById (id), InsertCustomer (ग्राहक), UpdateCustomer (ग्राहक), DeleteCustomer (ग्राहक)। यह वही है जो आरपीसी दृष्टिकोण के रूप में जाना जाता है। उदाहरण के लिए: GET with url: कंट्रोलर / GetCustomerById? Id = {id}
मतभेदों में से एक है, यह है कि एक REST एपीआई एक तरह का पूर्वानुमान है। यदि आप REST जानते हैं और आप अपने इच्छित संसाधन (जैसे ग्राहक) का नाम जानते हैं, तो आप तुरंत मानक क्रियाओं के साथ REST नियंत्रक में कूद सकते हैं और उसका उपयोग कर सकते हैं।
एक आरपीसी दृष्टिकोण के साथ, आपको यह जानना होगा कि आपके नियंत्रक पर कौन से तरीके हैं, वे किस तरह के तर्क लेते हैं, आदि। ये हस्ताक्षर नियंत्रक से नियंत्रक तक, ऐप से ऐप में भिन्न हो सकते हैं।
दूसरी ओर AJAX उपर्युक्त अनुरोधों को रखने का एक अतुल्यकालिक तरीका है, चाहे REST कॉल या RPC कॉल।


विकल्प अभी भी बाकी है। बाकी को संचालन के सेट द्वारा परिभाषित किया गया है, प्रोटोकॉल का उपयोग नहीं किया गया है।
Jan Hudec
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.