Partagez temporairement la même demande dans le navigateur.
Le cache du navigateur est utilisé avec createCsrCache de Core, et callApiSsrCache de /next est ajouté uniquement lorsque le cache de données du serveur Next.js est nécessaire.
Le wrapper de cache fait également partie de commonService.
Le code callApiClientCache/callApiServerCache de cette page explique uniquement la partie cache de l'adaptateur HTTP commun du projet. Le service généré peut être configuré pour importer cette fonction, donc il est plus clair de voir d'abord la structure de rxjsHttpService.ts/commonService.ts pour comprendre la position et le rôle de chaque wrapper.
Cache CSR (cache client)
createCsrCache<CacheName>()fournit callApiCsrCache(callApiFn, serviceArgs, cacheOptions) et removeCsrCache(cacheName).
Dans un environnement serveur, il n'y a pas de création de carte de cache CSR, et l'appel de callApi est effectué tel quel. Dans le navigateur, les résultats Observable avec la même clé de cache sont partagés avec shareReplay.
Adaptateur Next.js : callApiSsrCache
C'est un helper SSR utilisant next/cache(unstable_cache) de Next.js. Si c'est une requête GET et que cacheTime > 0, il utilise force-cache + revalidate, sinon les autres requêtes sont exécutées avec no-store.
- Vous pouvez injecter des cookies/autorisation par requête avec headersProvider.
- Il s'exécute s'il y a onServer401 à 401.
Ne pas mettre en cache les données spécifiques à l'utilisateur
Lorsque vous regroupez le navigateur et le serveur en un seul wrapper de projet.
Dans le service commun, le navigateur peut être dirigé vers createCsrCache et le serveur vers callApiSsrCache. C'est un modèle de configuration de projet et ce n'est pas une structure obligatoire de Core.
commonService.ts
tscommonService.ts
tsLorsque vous utilisez un wrapper de cache dans le service généré automatiquement, connectez ce wrapper uniquement aux points de terminaison nécessitant des fonctionnalités de cache, et utilisez callApi pour les autres.