次のようなユーザーの予定を取得するためのURLがあります。
/user/:userId/appointments
複数のユーザーの予定を取得したい場合、URLはどのようになりますか?
それは次のようになります:
/appointments?users=1d1,1d2..
ありがとう、クリス。
次のようなユーザーの予定を取得するためのURLがあります。
/user/:userId/appointments
複数のユーザーの予定を取得したい場合、URLはどのようになりますか?
それは次のようになります:
/appointments?users=1d1,1d2..
ありがとう、クリス。
コレクションはリソースであるため、/appointmentsはリソースとして問題ありません。
コレクションは通常、クエリ文字列を介してフィルターを提供します。これは、基本的にusers = id1、id2...です。
それで、
/appointments?users=id1,id2
フィルタリングされたRESTfulリソースとしては問題ありません。
通常は JSON エンコードして、REST 呼び出しパラメーターをシリアル化することをお勧めします。
/appointments?users=[id1,id2]
あるいは:
/appointments?params={users:[id1,id2]}
次に、サーバー上でエンコードを解除します。これにより、長期的には柔軟性が向上します。
パラメータを送信する前に、パラメータも URL エンコードしてください。
/appointments?users=1d1,1d2..
結構です。GETを使用して本文を渡すことはできないため、これが唯一の賢明なオプションです。
http GET を使用する代わりに、http POST を使用します。そしてJSON。またはXML
これは、サーバーへのリクエスト ストリームがどのように見えるかです。
POST /appointments HTTP/1.0
Content-Type: application/json
Content-Length: (calculated by your utility)
{users: [user:{id:id1}, user:{id:id2}]}
または XML では、
POST /appointments HTTP/1.0
Content-Type: application/json
Content-Length: (calculated by your utility)
<users><user id='id1'/><user id='id2'/></users>
確かに簡単なので、提案したように GET を引き続き使用できます。
/appointments?users=1d1,1d2
つまり、データ構造を非常に単純に保つ必要があります。
ただし、データ構造がより複雑になり、HTTP GET が使用され、JSON がないと、プログラミングとデータ認識能力が非常に難しくなります。
したがって、データ構造を単純に保つことができない場合は、データ転送フレームワークを採用することをお勧めします。リクエストがブラウザ ベースの場合、業界の通常のプラクティスは JSON です。リクエストがサーバー-サーバーの場合、XML が最も便利なフレームワークです。
JQuery
クライアントがブラウザーで、GWT を使用していない場合は、jquery REST の使用を検討する必要があります。jQuery を使用した Google on RESTful サービス。