web-dev-qa-db-ja.com

ユーザーに表示する前に複数のAPIを呼び出してデータを操作するためのベストプラクティスは?

複数のAPI(Googleマップ、Weather APIなど)を利用するWebアプリケーションを構築しています。私はPython + Flaskをバックエンドで使用し、Javascript(おそらくReactを使用しているので、まだ決定していません)をフロントエンドで使用しています。

アプリケーションは、これらのさまざまなAPIクエリの結果を取得して、API応答に基づく大量の計算と条件付きロジックを含む、単純で要約された結果をユーザーに提供します。

これを行うためのベストプラクティスは何ですか?

クライアント側ですべてのAPI呼び出しを実行し、そこでも計算などを処理するのは面倒です。

すべてをバックエンドで行う場合、呼び出しは非同期ではないため、呼び出しに時間がかかるのではないかと心配しています。私の使用例では、「読み込み中」のメッセージがある限り、2〜3秒の待機がおそらく許容されます。これは私が現在持っているものです(すべてのAPI呼び出しと必要な計算を書く途中)

また、クライアントでAPI呼び出しを実行し、それをサーバーに渡して計算してから、結果をフロントエンドに送り返すこともできます。それが実用的な解決策なのか、それとも本当に何かを解決するのかはわかりません。

2
Brian C

サーバーを使用して外部APIを管理および呼び出し、必要に応じて応答を組み合わせてクライアントに返す必要があります。

  • クライアントリソースをハイジャックして、これらのすべてのサービスを呼び出し、その集中度に応じて結果を処理するべきではありません。また、クライアントの接続の種類もわかりません。良好な接続で数秒かかると、大幅に長くなる可能性があります。
  • クライアントがすべてのさまざまなAPIエンドポイントにアクセスできることを保証することはできません。そのため、正常にフォールバックするにはさらに多くの作業が必要です。企業環境は、これが一般的である良い例です。
  • ユーザー間で一部の呼び出しをキャッシュすることを利用できる場合があります。

一般的な目標は、要求の数と転送されるデータの量を最小限にすることです。転送されるデータの量を削減したり、同様のメリット(CDNなど)を提供できない場合を除き、サードパーティのリクエストも最小限に抑える必要があります。

2
Ryathal