RESTful सुंदर यूआरएल डिजाइन एक संरचना के आधार पर एक संसाधन प्रदर्शित करने के बारे में (निर्देशिका की तरह संरचना, तारीख: लेख / 2005/5/13, वस्तु और यह की विशेषताओं, ..), स्लैश /
सौपानिक संरचना को इंगित करता है, का उपयोग -id
करने के बजाय।
वर्गीकृत संरचना
मैं पसंद करूंगा:
/garage-id/cars/car-id
/cars/car-id #for cars not in garages
यदि उपयोगकर्ता /car-id
भाग को हटाता है , तो यह cars
पूर्वावलोकन - सहज ज्ञान युक्त लाता है । उपयोगकर्ता वास्तव में जानता है कि वह पेड़ में कहां है, वह क्या देख रहा है। वह पहली नज़र से जानता है, कि गैरेज और कारें संबंध में हैं। /car-id
यह भी दर्शाता है कि यह एक साथ विपरीत है /car/id
।
खोज कर
खोज करना ठीक है जैसा कि यह है , केवल आपकी प्राथमिकता है, जिसे ध्यान में रखा जाना चाहिए। खोज में शामिल होने पर मजेदार हिस्सा आता है (नीचे देखें)।
/cars?color=blue;type=sedan #most prefered by me
/cars;color-blue+doors-4+type-sedan #looks good when using car-id
/cars?color=blue&doors=4&type=sedan #I don't recommend using &*
या मूल रूप से कुछ भी जो एक स्लैश नहीं है जैसा कि ऊपर बताया गया है।
सूत्र: /cars[?;]color[=-:]blue[,;+&]
*, हालांकि मैं &
संकेत का उपयोग नहीं करूंगा क्योंकि यह पहली नज़र में पाठ से अपरिचित है।
** क्या आप जानते हैं कि URI में JSON ऑब्जेक्ट को पास करना RESTful है? **
विकल्पों की सूची
/cars?color=black,blue,red;doors=3,5;type=sedan #most prefered by me
/cars?color:black:blue:red;doors:3:5;type:sedan
/cars?color(black,blue,red);doors(3,5);type(sedan) #does not look bad at all
/cars?color:(black,blue,red);doors:(3,5);type:sedan #little difference
संभव सुविधाएँ?
(!) निगेट तलाश किए जाने
किसी भी कारों खोजने के लिए, लेकिन नहीं काले और लाल :
?color=!black,!red
color:(!black,!red)
शामिल हों
खोजें लाल या नीले या काले रंग की कारों के साथ 3 दरवाजे गैरेज आईडी 1..20 या 101..103 या 999 लेकिन 5 नहीं
तो आप अधिक जटिल खोज क्वेरी का निर्माण कर सकते हैं। ( सब्सट्रेट मिलान के विचार के लिए सीएसएस 3 विशेषता को देखें । जैसे "बार" वाले उपयोगकर्ताओं को खोजना ।
/garage[id=1-20,101-103,999,!5]/cars[color=red,blue,black;doors=3]
user*=bar
निष्कर्ष
वैसे भी, इस के लिए, आप के लिए सबसे महत्वपूर्ण हिस्सा हो सकता है, क्योंकि आप इसे लेकिन आप सब के बाद की तरह कर सकते हैं, बस ध्यान रखें कि RESTful यूआरआई एक संरचना है जो आसानी से समझा जैसे निर्देशिका की तरह है का प्रतिनिधित्व करता है /directory/file
, /collection/node/item
, दिनांक /articles/{year}/{month}/{day}
.. और जब आप छोड़ देते हैं अंतिम खंडों में से कोई भी, आप तुरंत जानते हैं कि आपको क्या मिलता है।
तो .., इन सभी पात्रों को अनएन्कोड किया गया है :
RFC 3986 में 2.2 देखें
कि मैंने पहले जो कहा था उसके बावजूद, यहां डेलिमीटर का एक सामान्य अंतर है, जिसका अर्थ है कि कुछ " दूसरों की तुलना में " अधिक महत्वपूर्ण हैं।
- सामान्य delimeters:
:/?#[]@
- उप delimeters:
!$&'()*+,;=
और अधिक पढ़ने:
पदानुक्रम: 2.3 देखें , 1.2.3
url पथ पैरामीटर सिंटैक्स
CSS3 विशेषता मिलान
IBM देखें: प्रतिष्ठित वेब सेवाएं - मूल बातें
नोट: RFC 1738 को RFC 3986 द्वारा अद्यतन किया गया था
/cars
और/car
शब्दार्थ नहीं है और इसलिए यह एक बुरा विचार है। उस श्रेणी के अंतर्गत एक से अधिक आइटम होने पर हमेशा बहुवचन का उपयोग करें।