2013-07-17 10 views
5

タイトル:なぜRESTfulの集約関数が悪い考えですか?私はCRUDがRESTfulに適していることを知っていますが。集計関数がRESTfulにとってなぜ悪い考えですか?

は例えば、リソースが「従業員」であり、クライアントはすべての従業員の「給与の総合計をretriveする必要があります。 RESTfulサービスはそのような合計機能を提供すべきではありませんか?

さらに質問:RESTfulに集約関数が悪い場合、クライアントはどのように総給与の合計を得ることができますか?すべての '従業員'レコードを取得し、それ自体を集計するには?

+0

これ以上の必要はありませんこれは? – benjiman

答えて

7

RESTのリソースが悪いとみなされるため、操作の結果(つまり集約関数)が公開されているとは言いません。 RESTful Webservices Cookbook(オライリー)から

RESTの建築制約の最も一般的な認識の一つは、彼らが唯一のアプリケーションドメインでの「もの」や「実体」のリソースに適用されます ということです。 これは多くの場合に当てはまるかもしれませんが、処理機能を含むシナリオ はその認識に挑戦します。

処理関数をリソースとして扱い、HTTP GETを使用して処理関数の出力を含む表現をフェッチすることはよくあります。また、照会パラメーターを使用して、処理機能に入力を提供することもできます。

なぜすなわち、このように、資源としての従業員の数の給与集計の結果を提供していない:

GET /employees/aggregation?data=salary 

以上の一般的な:

GET /aggregator?resource=employee&data=salary 

あなたもフィルタリングすることができ給与を集計する必要がある従業員のグループ:

GET /employees/aggregation?data=salary&divison=sales 
関連する問題