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 -idyerine.
Hiyerarşik yapı
Ben şahsen tercih ederim:
/garage-id/cars/car-id
/cars/car-id #for cars not in garages
Bir kullanıcı /car-idparç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-idaynı 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/itemtarih /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
/carsve/carsemantik ve bu nedenle kötü bir fikir değildir. Bu kategorinin altında birden fazla öğe olduğunda daima çoğulu kullanın.