विकिपीडिया से: यूनिफ़ॉर्म रिसोर्स लोकेटर
एक पथ , जिसमें डेटा शामिल है, आमतौर पर पदानुक्रमित रूप में व्यवस्थित होता है, जो स्लैग द्वारा अलग किए गए खंडों के अनुक्रम के रूप में प्रकट होता है।
एक वैकल्पिक क्वेरी , प्रश्न चिह्न (?) से पूर्ववर्ती भाग से अलग हो जाती है, जिसमें गैर-पदानुक्रमित डेटा की क्वेरी स्ट्रिंग होती है ।
- URL के वैचारिक डिजाइन के अनुसार, हम पदानुक्रम को पदानुक्रमित डेटा / निर्देशों / लोकेटर घटकों के लिए लागू कर सकते हैं, या डेटा पदानुक्रमित नहीं होने पर क्वेरीपराम लागू कर सकते हैं। यह समझ में आता है क्योंकि रास्तों को स्वाभाविक रूप से आदेश दिया जाता है, जबकि प्रश्नों में चर होते हैं जिन्हें मनमाने ढंग से आदेशित किया जा सकता है (अनियंत्रित चर / मान जोड़े)।
पिछले टिप्पणीकार ने लिखा,
मुझे लगता है कि यदि पैरामीटर एक विशिष्ट इकाई की पहचान करता है तो आपको एक पथ चर का उपयोग करना चाहिए।
एक अन्य ने लिखा,
आईडी के आधार पर पुनर्प्राप्ति के लिए @PathParam का उपयोग करें। फ़िल्टर के लिए उपयोगकर्ता @QueryParam या यदि आपके पास उपयोगकर्ता द्वारा पारित किए जा सकने वाले विकल्पों की कोई निश्चित सूची है।
एक और,
मैं पथ में किसी भी आवश्यक पैरामीटर को रखने की सलाह दूंगा, और किसी भी वैकल्पिक पैरामीटर को निश्चित रूप से क्वेरी स्ट्रिंग पैरामीटर होना चाहिए।
- हालांकि, कोई विशिष्ट संस्थाओं की पहचान के लिए एक लचीली, गैर-श्रेणीबद्ध प्रणाली को लागू कर सकता है! किसी SQL तालिका पर एक से अधिक अनन्य अनुक्रमणिकाएँ हो सकती हैं, और किसी अनन्य अनुक्रमणिका वाले फ़ील्ड के किसी भी संयोजन का उपयोग करके संस्थाओं की पहचान करने की अनुमति देती हैं! विभिन्न संयोजनों (शायद यह भी अलग तरह से आदेश दिया गया है), विभिन्न संबंधित संस्थाओं (रेफरर्स) के लिंक के लिए इस्तेमाल किया जा सकता है। इस मामले में, हम गैर-पदानुक्रमित डेटा के साथ काम कर सकते हैं, जिसका उपयोग व्यक्तिगत संस्थाओं की पहचान करने के लिए किया जाता है - या अन्य मामलों में, केवल कुछ चर / फ़ील्ड - विशिष्ट अनुक्रमित के कुछ घटकों को निर्दिष्ट कर सकते हैं - और रिकॉर्ड की सूची / सेट प्राप्त कर सकते हैं। ऐसे मामलों में, QueryParams के रूप में URL को लागू करना आसान, अधिक तार्किक और उचित हो सकता है!
क्या लंबे हेक्साडेसिमल स्ट्रिंग को बाकी पथ में कीवर्ड के मान को कम / कम कर सकता है? यह पथ में चर / मान रखने या क्वेरी में संभावित एसईओ निहितार्थों पर विचार करने के लायक हो सकता है, और क्या हम चाहते हैं कि मानव-इंटरफ़ेस निहितार्थ यह है कि उपयोगकर्ताओं को पता बार की सामग्री को संपादित करके URL के पदानुक्रम का पता लगाने या उसका पता लगाने में सक्षम होना चाहिए। मेरा 404 नहीं मिला पेज अपने माता-पिता को स्वचालित रूप से टूटे हुए URL को पुनर्निर्देशित करने के लिए SSI चर का उपयोग करता है! खोज रोबोट पथ पदानुक्रम को भी रोक सकते हैं। दूसरी ओर, व्यक्तिगत रूप से, जब मैं सोशल मीडिया पर यूआरएल साझा करता हूं, तो मैं किसी भी निजी विशिष्ट पहचानकर्ताओं को मैन्युअल रूप से हटा देता हूं - आम तौर पर URL से क्वेरी को काट-छाँट करके, केवल रास्ता छोड़ देता है: इस मामले में, अद्वितीय पहचानकर्ता रखने में कुछ उपयोगिता है। क्वेरी के बजाय पथ में। क्या हम पथ घटकों के उपयोग को एक कच्चे उपयोगकर्ता-इंटरफ़ेस के रूप में सुविधाजनक बनाना चाहते हैं, शायद इस बात पर निर्भर करता है कि डेटा / घटक मानव-पठनीय हैं या नहीं। मानव-पठनीयता का प्रश्न पदानुक्रम के प्रश्न से कुछ हद तक संबंधित है: अक्सर, मानव-पठनीय खोजशब्दों के रूप में व्यक्त किया जा सकने वाला डेटा भी पदानुक्रमित है; जबकि पदानुक्रमित डेटा को अक्सर मानव-पढ़ने योग्य कीवर्ड के रूप में व्यक्त किया जा सकता है। (खोज इंजनों को स्वयं एक यूजर-इंटरफेस के रूप में यूआरएल के उपयोग को बढ़ाने के रूप में परिभाषित किया जा सकता है।) कीवर्ड या निर्देशों के पदानुक्रमों का कड़ाई से आदेश नहीं दिया जा सकता है, लेकिन वे आमतौर पर पर्याप्त करीब हैं कि हम पथ में वैकल्पिक मामलों को कवर कर सकते हैं, औरएक विकल्प को "कैनोनिकल" मामले के रूप में लेबल करें ।
मौलिक रूप से कई प्रकार के प्रश्न हैं जिनका उत्तर हम प्रत्येक अनुरोध के लिए URL के साथ दे सकते हैं:
- हम किस तरह के रिकॉर्ड / चीज़ का अनुरोध / सेवा कर रहे हैं?
- हम में से कौन सी रुचि रखते हैं?
- हम जानकारी / रिकॉर्ड कैसे प्रस्तुत करना चाहते हैं?
Q1 लगभग निश्चित रूप से पथ द्वारा, या PathParams द्वारा कवर किया गया है। Q3 (जो संभवतः मनमाने ढंग से ऑर्डर किए गए वैकल्पिक मापदंडों और डिफ़ॉल्ट मानों के एक सेट के माध्यम से नियंत्रित किया जाता है); लगभग निश्चित रूप से QueryParams द्वारा कवर किया गया सबसे अच्छा है। Q2: यह निर्भर करता है ...