次のようなユーザーの予定を取得するためのURLがあります。
/user/:userId/appointments
複数のユーザーの予定を取得する場合、URLはどのように表示されますか?
あるべきです:
/appointments?users=1d1,1d2..
ありがとう、クリス。
コレクションはリソースなので、/ appointmentsはリソースとして問題ありません。
コレクションは通常、クエリ文字列を介してフィルターを提供します。これは、本質的にusers = id1、id2 ...です。
そう、
/appointments?users=id1,id2
フィルタ処理されたRESTfulリソースとしては問題ありません。
REST呼び出しパラメータを、通常はJSONエンコードすることでシリアル化することをお勧めします。
/appointments?users=[id1,id2]
あるいは:
/appointments?params={users:[id1,id2]}
次に、サーバーでエンコードを解除します。これにより、長期的には柔軟性が向上します。
パラメータを送信する前に、URLEncodeも必ず確認してください!
選択するサーバーアーキテクチャ/フレームワークに応じて意味をなす別の方法は、同じ引数を何度も繰り返すことです。このようなもの:
/appointments?users=id1&users=id2
この場合、パラメーター名を単数形で使用することをお勧めします。
/appointments?user=id1&user=id2
これは、Jersey(for Java)などのフレームワークによってネイティブにサポートされています。詳細については この質問 をご覧ください。
これは私のために働いた。
/users?ids[]=id1&ids[]=id2
/appointments?users=1d1,1d2..
結構です。 GETでボディを渡すことはできないため、これはほとんど唯一の賢明なオプションです。