Cache memori browser dan Cache Data Next.js hanya ditambahkan ke layanan publik jika diperlukan.
Cache browser digunakan dengan createCsrCache dari Core, dan hanya menambahkan callApiSsrCache dari /next saat Data Cache server Next.js diperlukan.
Cache wrapper juga merupakan bagian dari commonService.
Kode callApiClientCache/callApiServerCache di halaman ini hanya menjelaskan bagian cache dari adapter HTTP umum proyek. Layanan yang dihasilkan dapat dikonfigurasi untuk mengimpor fungsi ini, jadi lebih jelas jika Anda melihat struktur rxjsHttpService.ts/commonService.ts secara keseluruhan untuk memahami posisi dan peran setiap wrapper.
CSR cache (cache klien)
createCsrCache<CacheName>()menyediakan callApiCsrCache(callApiFn, serviceArgs, cacheOptions) dan removeCsrCache(cacheName).
Di lingkungan server, tidak membuat peta CSR cache dan memanggil callApi secara langsung. Di browser, hasil Observable dengan kunci cache yang sama dibagikan dengan shareReplay.
Adapter Next.js: callApiSsrCache
Ini adalah helper SSR yang menggunakan next/cache (unstable_cache) dari Next.js. Jika GET dan cacheTime > 0, maka menggunakan force-cache + revalidate, dan permintaan lainnya dijalankan dengan no-store.
- Dapat menyuntikkan Cookie/Authorization per permintaan dengan headersProvider.
- Jika ada onServer401 pada 401, maka akan dieksekusi.
Jangan cache data per pengguna
Ketika menggabungkan browser/server menjadi satu wrapper proyek.
Dari layanan umum, browser dapat dibagi dengan createCsrCache, dan server dengan callApiSsrCache. Ini adalah pola konfigurasi proyek dan bukan struktur wajib dari Core itu sendiri.
commonService.ts
tscommonService.ts
tsSaat menggunakan cache wrapper di layanan otomatis, sambungkan wrapper ini hanya ke endpoint yang memerlukan fungsi cache, dan gunakan callApi biasa untuk yang lainnya.