RESTful なプリティ URLの設計は、構造 (ディレクトリのような構造、日付: 記事/2005/5/13、オブジェクトとその属性など) に基づいてリソースを表示するためのものです。スラッシュ/
は階層構造を示し、-id
代わりに を使用します。
#階層構造# 個人的に好きなのは:
/garage-id/cars/car-id
/cars/car-id #for cars not in garages
/car-id
ユーザーがパーツを削除すると、cars
直感的なプレビューが表示されます。ユーザーは自分がツリーのどこにいるのか、何を見ているのかを正確に知っています。彼は一目見ただけで、ガレージと車が関係していることを知っています。/car-id
また は とは異なり、一緒に属していることを示し/car/id
ます。
#Searching#
searchquery はそのままでOKです。あなたの好み、考慮すべきことだけがあります。おもしろいのは、検索を結合するときです (以下を参照)。
/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)
結合検索ガレージ ID 1..20または101..103または999で5ではない3 つのドアを持つ赤、青、または黒の車を
検索し
ます。その後、より複雑な検索クエリを作成できます。(部分文字列の一致のアイデアについては、 CSS3 属性の一致を参照してください。たとえば、 "bar" を含むユーザーを検索します。)
/garage[id=1-20,101-103,999,!5]/cars[color=red,blue,black;doors=3]
user*=bar
#結論# とにかく、これはあなたにとって最も重要な部分かもしれません。結局のところ、好きなようにできるからです。RESTful/directory/file
URI は、ディレクトリのような, /collection/node/item
, 日付など、簡単に理解できる構造を表していることを覚えておいてください/articles/{year}/{month}/{day}
..そして最後のセグメントのいずれかを省略すると、何が得られるかがすぐにわかります。
したがって、これらの文字はすべてエンコードなしで許可されます。
- unreserved:
a-zA-Z0-9_.-~
通常、エンコードされている場合とされていない場合の両方が許可されます。両方の使用は同等です。
- 特殊文字:
$-_.+!*'(),
- 予約済み:
;/?:@=&
それらが表す目的のためにエンコードされずに使用される場合があります。それ以外の場合は、エンコードする必要があります。
- 安全でない:
<>"#%{}|^~[]`
安全でない理由と、エンコードする必要がある理由: RFC 1738 2.2 を参照
その他の文字クラスについては、 RFC 1738#page-20も参照してください。
RFC 3986 2.2 を参照
してください
。以前に述べたことにもかかわらず、ここではデリミタの一般的な違いを示します。これは、一部のデリメータが他よりも「重要」であることを意味します。
- 一般的な区切り記号:
:/?#[]@
- サブ区切り:
!$&'()*+,;=
詳細情報:
階層: 2.3を参照、1.2.3を参照
url パス パラメーターの構文
CSS3 属性
の一致 IBM: RESTful Web サービス - 基本
注: RFC 1738 は RFC 3986 によって更新されました