データを集約するための柔軟な Web サービスを設計しています。
売上を例にとると。販売リソースには次のプロパティがあります。
- 営業担当者
- 製品
- 価格
- お客様
- ID
- デパートメント
- 日にち
- 等
したがって、sales にアクセスするための基本的な URI は次のようになります。
api/sales/{id}
次の要件を満たすように URI を設計する必要があります。
- 部門の総販売数
- 一人当たりの商品の累計販売数
- 月
だから、3つの基本的な要件。結果のグループ化、フィルタリング、および選択 (GROUP BY、WHERE、および SELECT に類似)。
URI の設計方法 私にとっての本当の問題は、グループ化をどのように設計するかです。ここに私が検討しているいくつかのアイデアがあります:
現在の URI 設計を維持しますが、追加のパラメーターを追加します。
例えば
/api/sales?groupby=department&groupby=customer
新しい URI:
/api/sales-aggregator?groupby=department&groupby=customer
パスの一部としてグループ化を含める:
/api/sales-aggregator/department/customer
ただし、部門と顧客の順序は任意です。
代替パス ソリューション
/api/sales-aggregator;groupby=部門、groupby=顧客
おすすめは?