2017-02-10 4 views
3

特定のユーザーのためのリストのユーザーとORDERSRESTどこを終点にするか?

がありますと仮定あなたは好ま、なぜされる1

  • /user/3/order_list
  • /order/?user=3

ができますか?

答えて

1

オプションのパラメータは、クエリ文字列に入れるほうが簡単な傾向があります。

パラメータ値が既存のリソースに対応していないときに404エラーを返す場合は、パスセグメントパラメータに向かう傾向があります。例えば/ customer/232ここで、232は有効な顧客IDではありません。

ただし、空のリストを返す場合は、パラメータが見つからない場合はクエリ文字列パラメータを返します。例えば/ contacts?name = dave

パラメータがURI構造全体に影響する場合は、パスを使用します。 /en/document/foo.txt対/document/foo.txt?language=en

クエリパラメータではなくパスに一意の識別子が含まれている場合。

検索エンジン/ブラウザの履歴/ナビゲーションには、経路が適しています。

0

私がAPIを作成し始めたとき、私は同じ質問について考えていました。
Video from apigee。私を助けてください。

APIを構築するときは、どのエンティティが独立しているのか、誰が関連しているのかを判断する必要があります。
たとえば、作成/更新/削除操作のオーダに対して特定のエンドポイントがある場合は、2番目のアプローチ/order/?user=3を使用しても問題ありません。
他の方法では、オーダーが1つの表現しか持たず、ユーザーに依存し、特別なやりとりがない場合、最初にアプローチすることができます。 RESTの

There is also nice article about best practice

0

全体のポイントは、リソースです。あなたは実際の要求にできるだけ近づけて試してみるべきです。私は間違いなくそれをorder_listと呼ぶのではありません。それは、あなたが何かを得ていると伝えるのに、GETが十分である間に、複数のユーザー

  • ユーザーが複数の注文
  • 順序を持つことができますを持つことができる(より良い名前の不足のため)

    • 売主:あなたはその後、ツリー構造として、それを考慮し、代わりに/user/usersを持つべきです複数の項目を持つことができます
    • 売り手はの yourdomain.com/my/users/3
    • 注文で見ることができ、単一のユーザーのyourdomain.com/my/users
    • 詳細とそのユーザーを見ることができます

      だから、私のような何かのために行くだろう単一のユーザーが表示されますyourdomain.com/my/users/3/orders

    • yourdomain.com/my/users/3/orders/5
  • 関連する問題