RESTful güzel URL tasarımı bir yapıya dayalı bir kaynak göstererek hakkındadır (dizin benzeri yapıda, tarih: makaleler / 2005 / 5/13, nesne ve 's nitelikleri, ..), eğik çizgi /
hiyerarşik yapısını gösterir kullanmak -id
yerine.
Hiyerarşik yapı
Ben şahsen tercih ederim:
/garage-id/cars/car-id
/cars/car-id #for cars not in garages
Bir kullanıcı /car-id
parçayı kaldırırsa , cars
önizlemeyi sezgisel olarak getirir . Kullanıcı ağacın neresinde olduğunu, neye baktığını tam olarak bilir. İlk bakıştan garajların ve arabaların birbiriyle ilişkili olduğunu biliyor. /car-id
aynı zamanda bunun aksine birbirine ait olduğunu gösterir /car/id
.
Aranıyor
Arama sorgusu olduğu gibi , sadece sizin tercihiniz var, nelerin dikkate alınması gerektiği. Komik kısım aramalara katılırken gelir (aşağıya bakın).
/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 &*
Ya da temelde yukarıda açıklandığı gibi eğik çizgi olmayan herhangi bir şey.
Formül:, /cars[?;]color[=-:]blue[,;+&]
* &
işareti ilk bakışta metinden tanınamadığı için kullanmam .
** URI'de JSON nesnesini geçirmenin RESTful olduğunu biliyor muydunuz? **
Seçenek listeleri
/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
olası özellikler?
Sıralı arama dizeleri (!) Siyah ve kırmızı değil
, herhangi bir aracı aramak için :
?color=!black,!red
color:(!black,!red)
Katılım aramalar
Arama kırmızı veya mavi ya da siyah ile araba 3 garajlar id kapı 1..20 veya 101..103 veya 999 ama değil 5
/garage[id=1-20,101-103,999,!5]/cars[color=red,blue,black;doors=3]
Daha sonra daha karmaşık arama sorgular oluşturabilirsiniz. ( Alt dizeleri eşleştirme fikri için CSS3 öznitelik eşleşmesine bakın. Örn. "Bar" içeren kullanıcıları aramak user*=bar
.)
Sonuç
Sadece akılda tutmak, sonuçta gibi ancak sen yapabilirsin çünkü Neyse, bu, sizin için en önemli parçası olabilir RESTful URI kolayca örneğin dizin benzeri anlaşılmış olan bir yapıyı temsil /directory/file
, /collection/node/item
tarih /articles/{year}/{month}/{day}
.. Ve atladığınızda Son segmentlerden herhangi birinde, ne elde ettiğinizi hemen bilirsiniz.
Yani, tüm bu karakterlerin kodlanmamış olmasına izin verilir :
RFC 3986 2.2 bkz
daha önce söylediklerini rağmen, burada bazı yani delimeters ortak bir ayrımdır "dir" diğerlerinden daha önemli.
- genel sınırlayıcılar:
:/?#[]@
- alt delimeters:
!$&'()*+,;=
Daha fazla okuma:
Hiyerarşi: bkz. 2.3 , bkz. 1.2.3
url yolu parametresi sözdizimi
CSS3 özniteliği eşleşen
IBM: RESTful Web hizmetleri - Temel bilgiler
Not: RFC 1738, RFC 3986 tarafından güncellendi
/cars
ve/car
semantik ve bu nedenle kötü bir fikir değildir. Bu kategorinin altında birden fazla öğe olduğunda daima çoğulu kullanın.