2017-05-23 12 views
0

Googleのモバイルアプリでは、最近、待ち時間の問題が発生し始めました。これの主な理由は、すべてのアプリケーションを開いたときに、サーバと同期しようとし、各モデルをフェッチするために10個のAPIエンドポイント呼び出しを起動するためです。例えば単一のAPIエンドポイントを使用して複数のモデルデータをフェッチするのは悪い方法ですか?

GET /api/profile 
GET /api/locations/all 
GET /api/positions/all 
... 10 more 

は、だから私は、クライアントがより簡単にサーバーのデータと同期するために呼び出すことができますつのAPIを実装しようとしています。

セイ、

のようなJSON形式でデータを返します
GET /api/user 

{ 
    "profile": ..., 
    "locations": ..., 
    "positions": ..., 
    ... 
} 

しかし、私は、私は多くのソフトウェアのことを見ていないとして、これは良い習慣ではないことを心配していますこれを行います。

単一のAPIエンドポイントを使用して複数のモデルデータを一度にフェッチするのは悪い方法ですか?

答えて

1

エンドポイントは、あなたにとって意味のあるものを返すことができます。あなたはモデルを定義する人です。

あなたの場合の大きな質問は、あなたの待ち時間の問題を解決するかどうかです。 1つのエンドポイントで10よりも優れたパフォーマンスを発揮しますか?場合によります。

もう1つのオプションは、開いているすべてのアプリでこれらのすべてのエンドポイントを押すことではありません。データは一時的にデバイスにキャッシュされ、定期的にリフレッシュできますか?

これはいくつか考えてください。

+0

お返事ありがとうございます。いくつかの詳細は除外されています。実際、モデルには依存関係があるため、一度にすべてをフェッチできるわけではなく、順番にフェッチできます。当社のソフトウェアは、常にサーバーと同期されるデータに厳しい制約があります。 –

関連する問題