1

ログイン後に表示されるユーザーダッシュボードがあります。ダッシュボードは複数のウィジェットで構成されています。各ウィジェットは、個別の安らかなサービスからコンテンツを取得します。例: /news /mails /questions /alerts . 各ウィジェットは、ページに読み込まれた後にサービスを呼び出します。このように、複数の Web サービス呼び出しがあります。

複数の呼び出しを減らす方法はありますか。

それが機能する方法は、ページが最初に読み込まれたときに、サービスがすべてのウィジェットの集計データを 1 回の呼び出しで返すことです。

また、各サービスは、単一のウィジェットの更新や他のシステム統合に使用できるように、個別に利用できる必要があります。

注 : ウィジェットとは、この場合、安らかなサービスからの json データを消費できる任意の JavaScript ポートレットです。すべてのサービスは、単一の Web アプリケーション内にあります。

複数のサービスからの応答を集約し、単一の JSON に結合するにはどうすればよいでしょうか?

4

2 に答える 2

0

json サービスは単なるメソッドであることを忘れないでください。そのため、@Vengard の回答を詳しく説明するには (以前の回答をそのまま受け入れてください)、次のような集計メソッドを作成することもできます。

@Path ("15218462")
class Test {
  @Path ("aggregate")
  public Map<String, Object> aggregate(@QueryParam("service") List<String> services) {
    Map<String, Object> result = new HashMap<>();       
      for (String serviceName : services) {
        if(serviceName.equals("mails") {
          result.put("mails", mails());
        }
        // ... etc 
      }
  }
  @Path
  public List<String> mails() {
    // .... processing code ...
  }
}

サービスが自分の管理下になく、サードパーティに依存することを気にしない場合は、Yahoo パイプ ( http://pipes.yahoo.com/pipes/ )などをチェックしてみてください。

于 2013-04-07T08:05:39.343 に答える