Skip to content

API 結果のキャッシュ

このページでは、APIのレスポンスやアバター画像をキャッシュして利用する際の指針を説明します。以下の課題を解決するために、キャッシュの実装は重要になります。

課題 解決策
API接続に伴うレイテンシ低下の回避 API レスポンスのキャッシュ
APIの割り当てを超過した利用の回避 API レスポンスのキャッシュ
アクティブでないユーザがMAUに含まれてしまうことの回避 画像ファイルのキャッシュ
Avatar Play メンテナンス時の信頼性向上 画像ファイルのキャッシュ

Info

キャッシュのためのキャッシュサーバやファイルストレージは自社サーバ側に準備する必要があります。

API レスポンスのキャッシュ

API のレスポンス(JSON)をキャッシュして一定期間再利用します。API は常に最新のデータを返しますが、自社アプリににおいて、更新遅延を許容できるケースでは、キャッシュを利用できます。

以下の API は、API のレスポンスを最大10分間自社サーバ側にキャッシュして利用できます。

Warning

Items API は、パラメータに avatarId を指定した場合の結果はキャッシュできません。

Warning

アバターやアイテムの画像およびそのURLは、自社アプリ以外の経路で変更される可能性があるため、10分を超えてキャッシュを利用することは避けてください。

キャッシュが有効なユースケース

掲示板

投稿より参照頻度の方が高い掲示板で、投稿者のアバター画像を表示しているケースなどでは、キャッシュが有効です。ページ内で必要なアバター画像を Avatars API で取得し、結果をキャッシュして再利用します。新しい投稿があったときなど、表示すべきアバターが変更された場合は API から再取得するようにします。

販売アイテムのリスト

アイテムを販売するページで販売アイテムのサムネイル画像をリスト表示するケースでは、Items API で取得した結果をキャッシュして再利用できます。

キャッシュが有効でないケース

マイページ

マイページなど、最新情報が必要となるページでのキャッシュは避けるか、短い時間に設定する方が無難です。ユーザーが着せ替えなどから戻ったときに、データが反映されていないと不具合のように感じる可能性があります。

アバター画像ファイルのキャッシュ

アバター画像ファイルを自社サーバのストレージにキャッシュして再利用できます。通常、API から得られたアバター画像をそのまま自社アプリ内で利用しますが、不要なAPIアクセスや信頼性向上のために、キャッシュを利用できます。

以下の API で得られたアバター画像は、後述の条件を満たすにおいて、自社サーバのストレージへキャッシュして利用できます。

キャッシュを利用できる条件と有効期間は次のとおりです。

条件 キャッシュ有効期間
自社アプリへのアクセスが1ヶ月以上ないユーザのアバター画像を表示するとき ユーザが自社アプリに再アクセスするまで
Avatar Play メンテナンス時など、API が利用できないとき API の利用が再開されるまで

ユースケース

掲示板

自社アプリへのアクセスが1ヶ月以上ないユーザの投稿文表示時に、当ユーザのアバター画像を表示する必要があるとします。API 経由でもアバター画像を取得できますが、キャッシュを利用して API アクセスを回避することで、Avatar Play 側でアクティブなユーザとしてカウントされなくなります。

実装例を示します。

  1. ユーザのアバター画像URL取得後、バックエンドで画像ファイルを自社ストレージへキャッシュしておきます
  2. ユーザがアクティブな間は API を通して得たアバター画像を利用し、都度キャッシュを更新します
  3. ユーザがアクティブでなくなった後は、キャッシュしておいたアバター画像(最後にキャッシュされたアバター画像)を利用します
  4. ユーザがアクティブに復帰した場合は1へ戻ります

信頼性向上

高信頼性が求められるサービスでは、API が利用できない状況を想定し、キャッシュの利用に切り替えれるよう設計しておくことを推奨します。自社アプリ内でのアバター表示を継続できます。

Info

Avatar Play の RESTful API は、可能な限り無停止で運用されるため、定期的なメンテナンスが予定されているわけではありません。


最終更新日: 2019-10-21