CSR Cache & Next.js
Der Browser-Cache wird mit Core's createCsrCache verwendet, und /next's callApiSsrCache wird nur hinzugefügt, wenn der Next.js-Server einen Daten-Cache benötigt.
Der Cache-Wrapper ist ebenfalls Teil des commonService.
Der Code für callApiClientCache/callApiServerCache auf dieser Seite erklärt nur den Cache-Teil des gemeinsamen HTTP-Adapters des Projekts. Da der generierte Service so konfiguriert werden kann, dass er diese Funktion importiert, ist es klarer, die gesamte Struktur von rxjsHttpService.ts/commonService.ts zuerst zu betrachten, um die Position und Rolle jedes Wrappers zu verstehen.
CSR-Cache (Client-Cache)
createCsrCache<CacheName>()stellt callApiCsrCache(callApiFn, serviceArgs, cacheOptions) und removeCsrCache(cacheName) zur Verfügung.
In der Serverumgebung wird kein CSR-Cache-Map erstellt, und der ursprüngliche callApi wird direkt aufgerufen. Im Browser wird das Observable-Ergebnis mit demselben Cache-Schlüssel mit shareReplay geteilt.
Next.js-Adapter: callApiSsrCache
Ein SSR-Helfer, der next/cache (unstable_cache) von Next.js verwendet. Wenn es sich um GET handelt und cacheTime > 0 ist, wird force-cache + revalidate verwendet, während andere Anfragen mit no-store ausgeführt werden.
- Mit headersProvider können Cookie/Authorization pro Anfrage injiziert werden.
- Wenn es bei 401 onServer401 gibt, wird es ausgeführt.
Benutzerspezifische Daten nicht cachen
Wenn Browser/Server in einem einzigen Projekt-Wrapper zusammengefasst werden.
Im gemeinsamen Service kann der Browser mit createCsrCache und der Server mit callApiSsrCache aufgeteilt werden. Dies ist ein Projektstrukturmuster und keine zwingende Struktur des Core selbst.
commonService.ts
tscommonService.ts
tsWenn Sie den Cache-Wrapper im automatisch generierten Service verwenden, verbinden Sie diesen Wrapper nur mit Endpunkten, die Cache-Funktionen benötigen, und verwenden Sie für die anderen einfach den normalen callApi.