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
ます。
探す
searchqueryはそのままで問題ありません。ユーザーの好みだけがあり、何を考慮に入れる必要があります。おもしろいのは、検索に参加するときです(下記を参照)。
/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つのガレージのIDでドアを1..20または101..103または999しかしない 5
/garage[id=1-20,101-103,999,!5]/cars[color=red,blue,black;doors=3]
あなたは、より複雑な検索クエリを構築することができます。(CSS3属性の一致を見て、部分文字列を一致させるアイデアを見つけてください。たとえば、「bar」を含むユーザーを検索しますuser*=bar
。)
結論
あなたはすべての後のような、しかし、あなたがそれを行うことができますので、とにかく、これはちょうどことを覚えておいて、あなたのために最も重要な部分であるかもしれないRESTfulな URIが簡単などのようなディレクトリ・理解されている構造で表し/directory/file
、/collection/node/item
日付、/articles/{year}/{month}/{day}
...とするとき、あなたを省略最後のセグメントのどれでも、何が得られるかすぐにわかります。
したがって、これらすべての文字はエンコードされていないことが許可されます。
RFC 3986は2.2を参照
以前に述べたことにも関わらず、デリミタの一般的な違いは次のとおりです。つまり、一部は他よりも「重要」であることが重要です。
- 一般的な区切り文字:
:/?#[]@
- サブデリメータ:
!$&'()*+,;=
参考資料:
階層:2.3を参照、1.2.3を参照
URLパスパラメータ構文
CSS3属性が
IBM:RESTful Webサービスに一致-基本事項
注:RFC 1738はRFC 3986によって更新されました
/cars
で/car
あり、意味的ではないため、悪い考えです。そのカテゴリに複数のアイテムがある場合は、常に複数を使用してください。