api - यूपीआई में शब्द डेलीमीटर के रूप में हाइफ़न, अंडरस्कोर, या ऊंट कैस?




url rest (4)

आपको एक क्रॉल करने योग्य वेब एप्लिकेशन यूआरएल में हाइफ़न का उपयोग करना चाहिए। क्यूं कर? क्योंकि हाइफ़न शब्दों को अलग करता है (ताकि एक खोज इंजन अलग-अलग शब्दों को अनुक्रमित कर सके), और शब्द वर्ण नहीं है। अंडरस्कोर एक शब्द चरित्र है, जिसका अर्थ है कि इसे एक शब्द का हिस्सा माना जाना चाहिए।

क्रोम में इसे डबल-क्लिक करें: ऊंटकेस
क्रोम में इसे डबल-क्लिक करें: under_score
क्रोम में इसे डबल-क्लिक करें: हाइफ़न-एटेड

देखें कि क्रोम (मैंने सुना है कि Google भी एक खोज इंजन बनाता है) केवल सोचता है कि उनमें से एक शब्द दो शब्द है?

camelCase और underscore को उपयोगकर्ता को शिफ्ट कुंजी का उपयोग करने की भी आवश्यकता होती है, जबकि hyphenated नहीं होता है।

तो यदि आपको क्रॉल करने योग्य वेब एप्लिकेशन में हाइफ़न का उपयोग करना चाहिए, तो आप इंट्रानेट एप्लिकेशन में कुछ अलग क्यों करना चाहेंगे? याद रखने के लिए एक कम बात है।

मैं एक इंट्रानेट ऐप के लिए एक HTTP- आधारित एपीआई डिजाइन कर रहा हूँ। मुझे एहसास है कि यह चीजों की भव्य योजना में एक बहुत ही छोटी चिंता है, लेकिन: क्या मुझे यूआरआई में शब्दों को सीमित करने के लिए हाइफ़न, अंडरस्कोर, या ऊंट का उपयोग करना चाहिए?

मेरे शुरुआती विचार यहां दिए गए हैं:

टेढ़े मेढ़े संयुक्त शब्द

  • यदि सर्वर केस-असंवेदनशील है तो संभावित समस्याएं
  • ऐसा लगता है कि क्वेरी स्ट्रिंग कुंजियों में काफी व्यापक रूप से उपयोग किया जाता है ( http://api.example.com ? searchQuery = ...), लेकिन अन्य यूआरआई भागों में नहीं

हैफ़ेन

  • अन्य विकल्पों की तुलना में अधिक सौंदर्यपूर्ण रूप से प्रसन्न
  • लगता है कि यूआरआई के पथ हिस्से में व्यापक रूप से उपयोग किया जाता है
  • जंगली में कभी भी हाइफेनेटेड क्वेरी स्ट्रिंग कुंजी नहीं देखी गई
  • एसईओ के लिए संभवतः बेहतर (यह एक मिथक हो सकता है)

बल देना

  • प्रोग्रामिंग भाषाओं को संभालने के लिए संभावित रूप से आसान है
  • कई लोकप्रिय एपीआई (फेसबुक, नेटफ्लिक्स, स्टैक एक्सचेंज इत्यादि) यूआरआई के सभी हिस्सों में अंडरस्कोर का उपयोग कर रहे हैं।

मैं सब कुछ के लिए अंडरस्कोर की ओर झुका रहा हूँ। तथ्य यह है कि अधिकांश बड़े खिलाड़ी उनका उपयोग कर रहे हैं ( https://stackoverflow.com/a/608458/360570 )।


आम तौर पर, इसके बारे में चिंता करने के लिए पर्याप्त प्रभाव नहीं पड़ता है, खासकर जब से यह एक इंट्रानेट ऐप है और सामान्य उपयोग इंटरनेट ऐप नहीं है। विशेष रूप से, चूंकि यह इंट्रानेट है , इसलिए एसईओ चिंता का विषय नहीं है, क्योंकि आपका इंट्रानेट खोज इंजन तक पहुंच योग्य नहीं होना चाहिए। (और यदि यह है, तो यह इंट्रानेट ऐप नहीं है)।

और इसके नमक के किसी भी ढांचे के पास पहले से ही ऐसा करने का एक डिफ़ॉल्ट तरीका है, या यह बदलने के लिए काफी आसान है कि यह बहु-शब्द यूआरएल घटकों से कैसे निपटता है, इसलिए मैं इसके बारे में ज्यादा चिंता नहीं करता।

उस ने कहा, यहां मैं विभिन्न विकल्पों को कैसे देखता हूं:

हैफ़ेन

  • हाइफ़न के लिए सबसे बड़ा खतरा यह है कि वही चरित्र (आमतौर पर) घटाव और संख्यात्मक अस्वीकृति (यानी शून्य या नकारात्मक ) के लिए भी प्रयोग किया जाता है।
  • हाइफ़न यूआरएल घटकों में अजीब लग रहा है । वे एक लेख के शीर्षक में शब्दों को अलग करने के लिए यूआरएल के अंत में केवल समझ में आते हैं। या, उदाहरण के लिए, एक स्टैक ओवरफ़्लो प्रश्न का शीर्षक जो एसईओ और उपयोगकर्ता-स्पष्टता उद्देश्यों के लिए यूआरएल के अंत में जोड़ा जाता है।

बल देना

  • फिर, वे यूआरएल घटकों में गलत महसूस करते हैं। वे एक यूआरएल के प्रवाह (और सौंदर्य / सादगी) को तोड़ते हैं, क्योंकि वे अनिवार्य रूप से स्वच्छ, बहने वाले यूआरएल के बीच में एक बड़ी, भारी स्पष्ट जगह जोड़ते हैं।
  • वे रेखांकित के साथ मिश्रण में होते हैं। यदि आप उम्मीद करते हैं कि आपके उपयोगकर्ता एमएस वर्ड या अन्य समान टेक्स्ट-एडिटिंग प्रोग्रामों में कहीं भी यूआरएल कॉपी या पेस्ट करें, या कहीं भी जो यूआरएल पर उठा सकते हैं और इसे अंडरलाइन ( पारंपरिक रूप से लिंक की तरह) के साथ स्टाइल कर सकते हैं, तो हो सकता है कि आप चाहें शब्द विभाजक के रूप में अंडरस्कोर से बचें। विशेष रूप से मुद्रित होने पर, अंडरस्कोर के साथ एक रेखांकित यूआरएल दिखता है जैसे अंडरस्कोर के बजाए इसमें रिक्त स्थान हैं

टेढ़े मेढ़े संयुक्त शब्द

  • अब तक मेरा पसंदीदा, चूंकि यह यूआरएल बेहतर प्रवाह प्रतीत होता है और पिछले दो विकल्पों में से कोई भी दोष नहीं है।
  • उन लोगों के लिए पढ़ने के लिए थोड़ा कठिन हो सकता है जिनके पास निम्न-मामले से ऊपरी-मामले को अलग-अलग करने में कठिनाई होती है, लेकिन यह URL में कोई समस्या नहीं होनी चाहिए, क्योंकि अधिकांश "शब्द" URL घटक होना चाहिए और एक / वैसे भी। यदि आपको लगता है कि आपके पास एक यूआरएल घटक है जो 2 "शब्द" से अधिक लंबा है, तो आपको शायद उस अवधारणा के लिए बेहतर नाम खोजने का प्रयास करना चाहिए।
  • मामले की संवेदनशीलता के साथ इसमें एक संभावित समस्या है, लेकिन अधिकांश प्लेटफ़ॉर्म को केस-संवेदी या केस-असंवेदनशील होने के लिए समायोजित किया जा सकता है। कोई भी यह केवल 2 मामलों के लिए एक मुद्दा है: ए।) इंसानों ने यूआरएल टाइप किया है, और बी।) प्रोग्रामर (चूंकि हम मानव नहीं हैं) यूआरएल टाइप करते हैं। टायपोज हमेशा एक समस्या है, चाहे केस संवेदनशीलता के बावजूद, तो यह है कोई अलग नहीं है कि सभी एक मामला।

जबकि मैं हाइफ़न की अनुशंसा करता हूं, मैं एक उत्तर भी दूंगा जो आपकी सूची में नहीं है:

कुछ भी नहीं

  • मेरी कंपनी के एपीआई में यूआरआई जैसे /quotationrequests/ , /purchaseorders/ और इसी तरह हैं।
  • यह कहने के बावजूद कि यह एक इंट्रानेट ऐप था, आपने एसईओ को लाभ के रूप में सूचीबद्ध किया। Google ?q=foo+bar क्वेरी के लिए URL / पैटर्न में पैटर्न / foobar से मेल खाता है
  • मुझे उम्मीद है कि आप किसी भी मनमाने ढंग से स्ट्रिंग को PHP कॉल निष्पादित करने पर विचार नहीं करेंगे जिसे उपयोगकर्ता पता बार में भेजता है, क्योंकि @ ServAce85 सुझाता है!

यहां दोनों दुनिया के सर्वश्रेष्ठ हैं।

मैं अंडरस्कोर भी पसंद करता हूं, उनके बारे में आपके सभी सकारात्मक बिंदुओं के अलावा, उनके लिए एक निश्चित पुरानी-स्कूल शैली भी है।

तो मैं जो करता हूं वह अंडरस्कोर का उपयोग करता है और हाइफ़ेंस में सभी अंडरस्कोर को दोबारा लिखने के लिए बस अपने अपाचे की .htaccess फ़ाइल में एक छोटा सा पुनर्लेखन नियम जोड़ता है।

https://yoast.com/apache-rewrite-dash-underscore/





restful-url