2011-09-09 9 views
0

私たちには、人のリストを返すRESTFul Webサービスがあります。どのような場合にクライアントをより正確なURIにリダイレクトする必要がありますか

/人/リスト

しかし、ビジネスは唯一の "アクティブ" 人物を返すように望んでいます。つまり、2009年以降に作成された人です。

私はリソースのより正確な表現であるため、(307?)/ person/listを/ person/list?createdAfter = 2009にリダイレクトすることを提案しています。それは理にかなっていますか?そうでない場合は、どうしてですか?

答えて

1

私の意見では、URL/person/listはフィルタリングされていないリストを返します。フィルタリングされたリストを取得するには、明示的にcreateAfter = 2009を指定する必要があります。

私はこれを道のことを考えて言う。実際にすべてのユーザーが必要なアプリケーションをお持ちの場合はどうなりますか?あなたが/人/リストに応じて魔法のようにフィルタリングされたバージョンにリダイレクトする古いコードの束を持っていて、何らかの理由でURL /人/リストを実際にフィルタリングされていないバージョンに変更する必要がある場合はどうでしょうか?その後、すべてのユーザーを引き込むため、古いコードが破損しました。

私は1 2のアプローチとなるだろう:リダイレクトしないでください

1)。/person/listには、アクティブな人だけを暗黙のうちに含めるようにしてください。このような状況で、非アクティブにするには、/ person/list?allまたは/ person/list?includingInactiveまたは何かを実際に要求する必要があります(要望があれば、無効にされたものを明示的に要求する必要があります)

2)実際にはアプリケーションで?createAfter = 2009のURLを使用してください。

私はおそらく最初のオプションを使用します。これは、アクティブな人物のロジックをアプリケーションではなくWebサービスに保持することを可能にします。つまり、URLの意味は決して変化しません(just/person/listは、アクティブな人物)。

1

/person/list/activeを使用すると何が問題になりますか?アクティブなのは2009年以降に作成されますが、その定義は変更される可能性があります。

関連する問題