2012-05-02 12 views
13

उनके उपयोग के संदर्भ में क्वेरीपाराम और पथपाराम के बीच क्या अंतर है?जावा रीस्टफुल सेवाएं - उनके उपयोग के संदर्भ में क्वेरीपाराम और पथपाराम के बीच क्या अंतर है?

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

+0

क्या आपका प्रश्न * कैसे * प्रत्येक के उपयोग के बारे में अधिक है, या क्या आप वास्तव में पूछना चाहते हैं * कब * (यानी, किस परिस्थितियों में) आप क्वेरी पैरामीटर के रूप में पथ बनाम कुछ हिस्से को एन्कोड करेंगे? –

+0

केविन, मेरा मतलब है कि मुझे पथ पैरामीटर के रूप में पथ बनाम भाग के हिस्से के रूप में कुछ एन्कोड करना चाहिए? अग्रिम धन्यवाद .. – Anil

+0

अब मुझे यह जानने में अधिक दिलचस्पी है कि मुझे पथ पैरामीटर के हिस्से के रूप में क्वेरी पैरामीटर के रूप में कुछ एन्कोड करना चाहिए। – Anil

उत्तर

4

शायद अभ्यास में सवाल का एक सही जवाब नहीं है, क्योंकि "जंगली" में उपयोग में कई अलग-अलग यूआरएल योजनाएं हैं। हालांकि इसे देखने का एक सहायक तरीका आरईएसटी यूआरएल प्रोसेसिंग के मामले में होगा। आरईएसटी (रिप्रेस्पेशनल स्टेट ट्रांसफर) में, विचार यह है कि आप जिस संसाधन को एक्सेस करना चाहते हैं, उसे विशिष्ट रूप से पहचानने में सक्षम होना चाहिए। एक सामान्य आरईएसटी योजना में, यूआरएल का पथ भाग एन-स्पेस (यानी, एक्स, वाई, जेड => // myApp/x/y/z) में निर्देशांक के सेट के रूप में सोचा जा सकता है और क्वेरी पैरामीटर हैं आगे विनिर्देशक। मिलान करने वाले संसाधनों की सूची लौटने के लिए, इन और निर्दिष्ट विनिर्देशकों को अपूर्ण पथ विनिर्देशों के लिए खोज मानदंड के रूप में उपयोग किया जा सकता है।

REST URL के अधिक उदाहरणों के लिए following question देखें।

संपादित करें: @marcok एक अच्छा तकनीकी जवाब है, लेकिन के रूप में अपने अपडेट की गई टिप्पणी से अवगत कराया, तो आप जब एक दूसरे के ऊपर का चयन करने में अधिक रुचि रखते हैं। आम तौर पर यदि आप "शुद्ध" रीस्टफुल एपीआई बनाने जा रहे हैं, तो पथ का हिस्सा जो कुछ भी उनकी पहचान से संसाधनों को विशिष्ट रूप से पहचानना चाहिए। प्रायः, संसाधन का अनन्य रूप से पहचानने के लिए पथ के हिस्से के रूप में आपका URL एक आईडी मान में समाप्त हो सकता है।

हालांकि, यदि आपका एपीआई विशेषताओं (संभवतः आईडी को छोड़कर) द्वारा खोज/फ़िल्टर करने की क्षमता का खुलासा कर रहा है, तो आपको क्वेरी पैरामीटर के रूप में एन्कोड करने की अधिक संभावना होगी।

ये केवल उदाहरण हैं, और एक अच्छी एपीआई के बारे में अलग-अलग राय हैं, और अधिक विशेष रूप से कैसे एक एपीआई को पूरी तरह से पुनर्स्थापित करना आवश्यक है।

41

@QueryParam यूआरएल की क्वेरी स्ट्रिंग (कुंजी के बाद भाग) में कुंजी/मूल्य जोड़े तक पहुंचने के लिए प्रयोग किया जाता है। उदाहरण के लिए यूआरएल http://example.com?q=searchterm में, आप q के मान प्राप्त करने के लिए @QueryParam("q") का उपयोग कर सकते हैं।

@PathParam पैरामीटर के रूप में यूआरएल के एक हिस्से से मेल खाने के लिए प्रयोग किया जाता है। उदाहरण के लिए http://example.com/books/{bookid} के यूआरएल में, आप पुस्तक की आईडी प्राप्त करने के लिए @PathParam("bookid") का उपयोग कर सकते हैं।

जेएक्स-आरएस में उपयोग किए जाने वाले उदाहरण के लिए this page देखें।

+0

संबंधित प्रश्न। उम्मीद है कि यह दूसरों की मदद करता है। http://stackoverflow.com/questions/25037347/server-side-j2ee-webservice-gets-null-values-on-parameters/25038686#25038686 – Siddharth

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