CSRキャッシュ & Next.js
ブラウザキャッシュは Core の createCsrCache を使用し、Next.js サーバーのデータキャッシュが必要なときだけ /next の callApiSsrCache を追加します。
キャッシュラッパーも commonService の一部です。
このページの callApiClientCache/callApiServerCache コードは、プロジェクト共通 HTTP アダプターのキャッシュ部分だけを説明します。生成されたサービスがこの関数をインポートするように構成できるため、全体の rxjsHttpService.ts/commonService.ts 構造を最初に見ると、各ラッパーの位置と役割がより明確になります。
CSR キャッシュ (クライアントキャッシュ)
createCsrCache<CacheName>()は callApiCsrCache(callApiFn, serviceArgs, cacheOptions) と removeCsrCache(cacheName) を提供します。
サーバー環境では CSR キャッシュマップを作成せず、元の callApi をそのまま呼び出します。ブラウザでは同じキャッシュキーの Observable 結果を shareReplay で共有します。
Next.js アダプター: callApiSsrCache
Next.js の next/cache(unstable_cache) を使用する SSR ヘルパーです。GET で cacheTime > 0 の場合は force-cache + revalidate を使用し、それ以外のリクエストは no-store で実行します。
- headersProvider でリクエストごとに Cookie/Authorization を注入できます。
- 401 で onServer401 があれば実行します。
ユーザーごとのデータはキャッシュしない
ブラウザ/サーバーを 1 つのプロジェクトラッパーでまとめる場合
共通サービスでブラウザは createCsrCache、サーバーは callApiSsrCache に分岐するようにまとめることもできます。これはプロジェクト構成パターンであり、Core 自体の必須構造ではありません。
commonService.ts
tscommonService.ts
ts自動生成サービスでキャッシュラッパーを使用する場合も、キャッシュ機能が必要なエンドポイントにのみこのラッパーを接続し、残りは通常の callApi をそのまま使用します。