0

ユーザーが特定のオブジェクトに関するクエリを発行し、そのオブジェクトに重みを付けることができる RESTful API を構築しています。例えば:

http://host.domain.com/cars?id=100&weight=50

(これは不自然で単純化された例であるため、これがあまり意味をなさない場合は申し訳ありません!)

複雑なのは、ユーザーが単一のクエリで複数のオブジェクトを結合する必要がある場合があることです。私が疑問に思っているのは、これを行うための標準的な RESTful な方法があるかどうかということです。たとえば、次のようなオプションが思い浮かびます。

http://host.domain.com/cars?id1=100&weight1=50&id2=200&weight2=90

http://host.domain.com/cars?ids=100,200&weights=50,90

たとえば、重みはオプションであるため、次のようなものを許可する必要があるため、2番目のものは好きではありません。

http://host.domain.com/cars?ids=100,200&weights=,90

最初のものは私にとっては好ましいようですが、複雑になる可能性があります。特に、既にインデックス付きの引数 (x1、x2 など) があるため、2 つのレベルのインデックス (x1_1、x1_2、...) が必要になることを意味します。

この種の標準的なアプローチを知っている人はいますか? または、実用的で賢明な解決策を思いつく人はいますか?

4

2 に答える 2

1

あなたの質問がCoolURIでカバーされているかどうかはわかりません-http ://www.w3.org/TR/cooluris/

私の個人的な選択は、それをサポートする引用がないので、最初にサーバー構成(リダイレクトまたはエイリアス)を使用してクエリ文字列を削除し、ベースリソースが次のように表示されるようにすることです。

http://host.domain.com/cars

次に、IDと重みのリストを(URIの「パス情報」に)追加して、適切と思われるように区切ることができます-セミコロンまたはスラッシュ。私が選択するのは後者です。URIが読みやすく、入力しやすいからです。問題になるのは、重みが省略されることがある場合だけですが、IDが英数字(おそらくハッシュ)であり、重みが常に数値である場合は克服できます。

于 2012-07-09T13:02:17.767 に答える
0

これが正しいかどうかはまだわかりません.LeeGeeの提案は合理的ですが、最終的には次のようなものになりました:

http://host.domain.com/cars?id_1=100&weight_1=50&id_2=200&weight_2=90

見苦しい URI を作成してしまいますが、特にオプションの引数が省略されている場合は、一貫性があり、明確であるように思えます。

于 2012-07-09T20:35:50.053 に答える