Halaman ini berlaku untuk Apigee dan Apigee hybrid.
Lihat Dokumentasi Apigee Edge.
Anda dapat menggunakan kebijakan untuk menyimpan data dalam cache tujuan umum untuk pengambilan yang 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 data dalam cache umum yang digunakan oleh proxy Anda.
Kode contoh dalam topik ini didasarkan pada Keluar Proxy contoh OAuth di GitHub. Contoh ini menggunakan kebijakan cache untuk menyimpan token akses OAuth untuk digunakan kembali di beberapa panggilan keluar.
Pada contoh berikut, token akses OAuth ditulis ke cache menggunakan filledCache lebih lanjut. 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 fillCache 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 yang di-cache
Anda dapat mengambil nilai yang di-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. Ketika permintaan yang berisi header HTTP yang ditentukan diterima, cache akan dihapus. Untuk kebijakan informasi referensi, 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>