2

SpringMVCを使用するJavaベースのRESTfulAPIの作成に取り組んでいます。

ここで、一部のAPIエンドポイント(複数の異なるパラメーターが必要です...パラメーター1、パラメーター2、パラメーター3、パラメーター4など)の4つすべて(またはそれ以上)の値のリストについては話していません。パラメータもさまざまなデータ型です。

上記のシナリオのAPIエンドポイントURLを設計するにはどうすればよいですか?たとえば、4つの個別の入力パラメーターの場合です。これを行うための推奨される方法/ベストプラクティスはありますか?または、「/」のような区切り文字で区切られた値の各ペアを使用して、4つの値を単純に連結しますか?

ユーザーコメントからの編集:

例:(整数)ユーザーID、(整数)ファイルID、(文字列)タイプ、(文字列)ユーザータイプの4つの入力パラメーターに基づいてカスタムオブジェクト('ファイル')を取得する必要があります。「getfile/{userid} / {fileid} / {type} / {usertype}」のようなRESTエンドポイントを作成するだけでよいですか、それともそのようなRESTエンドポイントを構築するためのより良い(または推奨される方法)方法はありますか?

4

2 に答える 2

3

RESTでは、リソースについて考え、そのリソースを識別するための不変のパーマリンク(変更されない)を考え出すことから始めます。

したがって、あなたの例(コメント内)では、ユーザーとタイプ(ファイルタイプまたはユーザータイプ?)のファイルリソースを取得すると言いました。

したがって、リソースを識別するのに十分な情報から始めます。IDが一意である場合、ファイルを所有しているユーザーに関係なく、これでリソースを識別できます。

/files/{fileId}

これは、ファイルが所有者を変更する可能性がある場合のURLとしても重要です。パーマリンクになるように、必要なコンポーネントだけでリソースを識別したいことを忘れないでください。

特定のユーザーのファイルを一覧表示することもできます。

/users/{userId}/files/

応答にはファイルのリストが含まれ、リスト内の各項目にはファイルへのリンクが含まれます(/ files / {fileId})

何らかの理由でファイルIDが一意ではなく、ユーザーのコンテキストでのみ一意である場合(ファイルはユーザー内の所有者とIDの増分を変更しない-wierd)、リソースを識別するために次のコンポーネントが必要になります。

/users/{userId}/files/{fileId}

説明に基づいた順序にも注意してください。その奇妙なケースでは、ファイルは論理的に含まれ、ユーザーによってIDが付けられ、それはurl構造の包含でもあると言いました。

お役に立てば幸いです。

于 2013-03-07T12:55:28.737 に答える
0

いい音を出すGETリクエストfile/{usertype}/{user}/{type}/{fileid}

于 2013-03-07T05:21:35.337 に答える