2012-03-01 4 views
2

世界中にサービスを掲載している「通常の」ウェブアプリがあります。 書籍をリストするには、1)検索フィールドを使用する方法、2)階層的な経路設計を使用する方法の2つがあります。 mysite.com/en/services?location=london &カテゴリ=低コストRESTful API:デザイン文字列、クエリ文字列または階層による設計方法

実施例2)のようなパス: mysite.com/en/services/uk/

例1)さがすフィールドのようなURIを生成しますロンドン/ローコスト

どちらの例も同じサービスをリストしています。

しかし、今ではRESTful APIをコーディングする必要があります。だから私の質問は: 私はどのインターフェイス/方法私のAPIクライアントに提供する必要がありますか?つまり、クエリ文字列(例1)を使用してデータをリクエストするだけであれば、自分でパスを構築する必要があります。つまり、ロンドンがukに属していることを知っておく必要があります。:)(またはchiang-mai toタイ)...

両方の方法をお勧めしますか? 2つのリソース(この場合はcolletions)が同じリソースを対象とする、RESTfulなAPI設計ですか?

+0

が重複する可能性(http://stackoverflow.com/questions/3821663/querystring-in-rest-resource-url) – outis

答えて

3

パス名は階層のためのもので、フィルタリングのためのクエリ文字列です。

  1. 名前付きオブジェクトのスーパーカテゴリの場合は、パス名に入ります。
  2. 名前付きオブジェクトを一意に識別する場合は、パス名の最後のコンポーネントです。
  3. オブジェクトを一意に識別しない名前付きオブジェクトのプロパティまたはサブオブジェクトの場合は、クエリ文字列に入ります。
[RESTリソースURLでクエリ文字列]の
+0

私が正しくあなたの答えを理解している場合、私はわからないんだけど。つまり、この例では何をスーパーカテゴリと呼んでいますか?多分 "サービス"?名前付きオブジェクトはリソースです(私の例では両方ともコレクションです) – ratamaster

関連する問題