70

次のようなユーザーの予定を取得するためのURLがあります。

/user/:userId/appointments

複数のユーザーの予定を取得したい場合、URLはどのようになりますか?

それは次のようになります:

/appointments?users=1d1,1d2..

ありがとう、クリス。

4

6 に答える 6

86

コレクションはリソースであるため、/appointmentsはリソースとして問題ありません。

コレクションは通常、クエリ文字列を介してフィルターを提供します。これは、基本的にusers = id1、id2...です。

それで、

/appointments?users=id1,id2 

フィルタリングされたRESTfulリソースとしては問題ありません。

于 2012-08-14T01:09:41.820 に答える
15

通常は JSON エンコードして、REST 呼び出しパラメーターをシリアル化することをお勧めします。

/appointments?users=[id1,id2]

あるいは:

/appointments?params={users:[id1,id2]}

次に、サーバー上でエンコードを解除します。これにより、長期的には柔軟性が向上します。

パラメータを送信する前に、パラメータも URL エンコードしてください。

于 2012-08-14T01:39:25.287 に答える
1
/appointments?users=1d1,1d2.. 

結構です。GETを使用して本文を渡すことはできないため、これが唯一の賢明なオプションです。

于 2012-08-14T01:06:02.400 に答える
-7

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 サービス。

于 2012-08-14T02:12:52.200 に答える