Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi
Apigee X. info
Anda dapat menggunakan kebijakan untuk menyimpan data dalam cache tujuan umum agar dapat diambil dengan lebih cepat. Menggunakan kebijakan berikut, proxy Anda dapat menyimpan dan mengambil data yang di-cache saat runtime:
- Isi kebijakan Cache untuk menambahkan data ke cache.
- Kebijakan LookupCache untuk mengakses data dalam cache.
- Kebijakan InvalidateCache untuk membersihkan {i>cache<i}.
Kebijakan ini dirancang untuk penyimpanan dalam cache data umum yang digunakan oleh proxy Anda.
Kode contoh dalam topik ini didasarkan pada proxy contoh OAuth Keluar di GitHub (lihat Daftar contoh). Contoh ini menggunakan kebijakan cache untuk menyimpan token akses OAuth untuk digunakan kembali di beberapa panggilan keluar.
Setiap jenis kebijakan ditentukan oleh skema XML (.xsd). Sebagai referensi, skema kebijakan tersedia di GitHub.
Dalam contoh berikut, token akses OAuth ditulis ke cache menggunakan kebijakan PopulateCache. Token OAuth diambil untuk permintaan berikutnya oleh kebijakan LookupCache. Setelah masa berlaku token akses habis, JavaScript digunakan untuk mengambil token akses baru, yang kemudian di-cache oleh kebijakan filledCache.
Mengisi cache
Gunakan kebijakan contentCache untuk menulis data ke cache. Contoh ini menulis akses OAuth ke cache. Untuk informasi referensi kebijakan, lihat Isi kebijakan Cache.
<PopulateCache name="token-cache"> <!-- The cache to write to. --> <CacheResource>mycache</CacheResource> <!-- The source of the data, a variable containing the value. --> <Source>twitter-translate.apiAccessToken</Source> <!-- An enumeration representing a prefix for namespace scope. --> <Scope>Exclusive</Scope> <!-- A unique pointer (a flow variable value) to the data. Use this later to retrieve it. --> <CacheKey> <KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.queryparam.client_id"></KeyFragment> </CacheKey> <!-- Entries placed into the cache with this policy will expire after 600 seconds. --> <ExpirySettings> <TimeoutInSec>600</TimeoutInSec> </ExpirySettings> </PopulateCache>
Variabel dapat diisi oleh kebijakan atau kode. Variabel Source
dalam
contoh diisi oleh panggilan JavaScript berikut:
context.setVariable('twitter-translate.apiAccessToken', getAccessToken());
Untuk informasi selengkapnya tentang kunci cache, lihat Bekerja dengan kunci cache.
Mencari data dalam cache
Anda dapat mengambil nilai yang disimpan dalam cache dengan kebijakan LookupCache. Kebijakan LookupCache berikut
membaca nilai dari mycache
dan menulis nilai ke
variabel twitter-translate.apiAccessToken
. Untuk referensi kebijakan
informasi tambahan, lihat kebijakan LookupCache.
<LookupCache name="token-cache"> <!-- The cache to read from. --> <CacheResource>mycache</CacheResource> <!-- Where to assign the retrieved value - here, a variable. --> <AssignTo>twitter-translate.apiAccessToken</AssignTo> <!-- An enumeration representing a prefix for namespace scope. --> <Scope>Exclusive</Scope> <!-- The unique pointer (a flow variable value) that was used to store the data in the cache. --> <CacheKey> <KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.queryparam.client_id"></KeyFragment> </CacheKey> </LookupCache>
Membatalkan validasi cache
Cache dapat dibatalkan secara eksplisit dengan menentukan header HTTP. Saat permintaan yang berisi header HTTP yang ditentukan diterima, cache akan dihapus. Untuk informasi referensi kebijakan, lihat kebijakan InvalidateCache.
<InvalidateCache name="InvalidateMyCache"> <!-- The cache to invalidate. --> <CacheResource>test-cache</CacheResource> <!-- An enumeration representing a prefix for namespace scope. --> <Scope>Exclusive</Scope> <!-- Fragments constructing the unique pointer used when the data was put into the cache. --> <CacheKey> <KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.queryparam.client_id" /> </CacheKey> <PurgeChildEntries>true</PurgeChildEntries> </InvalidateCache>