Apigee Edge belgelerini görüntülüyorsunuz.
Git:
Apigee X belgeleri. bilgi
Politikaları daha hızlı almak için verileri genel amaçlı bir önbellekte depolamak amacıyla kullanabilirsiniz. Her bir proxy'niz çalışma zamanında önbelleğe alınan verileri depolayıp alabilir:
- Önbellek politikasını doldur seçeneğini belirleyin.
- LookupCache politikası önbelleğe alınmış verilere erişmek için gereklidir.
- InValidateCache politikası önbelleği boşaltır.
Bu politikalar, proxy'leriniz tarafından kullanılan verilerin genel önbelleğe alınması için tasarlanmıştır.
Bu konudaki örnek kod, GitHub'daki Outbound OAuth örnek proxy'sini temel alır ( Sana Özel listesi). Bu örnekte kullanılan önbellek politikası oluşturun.
Her politika türü bir XML şemasıyla (.xsd) tanımlanır. Referans olması açısından, politika şemaları GitHub'da bulabilirsiniz.
Aşağıdaki örnekte, PopulateCache kullanılarak önbelleğe bir OAuth erişim jetonu yazılmıştır politikası. OAuth jetonu, sonraki istekler için bir LookupCache politikası tarafından alınır. Bir erişim jetonunun süresi dolduğunda, yeni bir erişim jetonu almak için JavaScript kullanılır ve bu jeton da önbelleğe alınır. PopulateCache politikası tarafından.
Önbelleği doldurma
Önbelleğe veri yazmak için PopulateCache politikasını kullanın. Bu örnekte, bir OAuth erişimi yazılmaktadır önbellek için geri yükleyin. Politika referans bilgileri için bkz. Önbellek politikasını doldurun.
<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>
Değişkenler politikalar veya kod tarafından doldurulabilir. Bu öğedeki Source
değişkeni
örnek aşağıdaki JavaScript çağrısıyla doldurulur:
context.setVariable('twitter-translate.apiAccessToken', getAccessToken());
Önbellek anahtarları hakkında daha fazla bilgi için Önbellek anahtarlarıyla çalışma başlıklı makaleyi inceleyin.
Önbelleğe alınan verileri ara
LookupCache politikasıyla önbelleğe alınmış değerleri alabilirsiniz. Aşağıdaki LookupCache politikası
mycache
kaynağından bir değer okur ve bu değeri
değişkeni twitter-translate.apiAccessToken
. Politika referansı için
daha fazla bilgi için LookupCache politikasına göz atın.
<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>
Önbelleği geçersiz kılma
Önbellek, bir HTTP üstbilgisi belirtilerek açıkça geçersiz kılınabilir. Belirtilen HTTP üst bilgisini içeren bir istek alındığında önbellek temizlenir. Politika için referans bilgileri için InValidateCache politikasına bakın.
<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>