Wyświetlasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
Możesz użyć zasad, aby przechowywać dane w pamięci podręcznej ogólnego przeznaczenia w celu szybszego pobierania. Za pomocą tych zasad serwer proxy może przechowywać i pobierać dane z pamięci podręcznej w czasie działania:
- Wypełnij zasadę pamięci podręcznej aby dodać dane do pamięci podręcznej.
- Zasady dotyczące pamięci podręcznej, aby uzyskać dostęp do danych z pamięci podręcznej.
- Zasady Unieważnij pamięć podręczną aby wyczyścić pamięć podręczną.
Te zasady zostały opracowane z myślą o ogólnych buforowaniu danych używanych przez serwery proxy.
Przykładowy kod w tym temacie jest oparty na przykładowym serwerze proxy OAuth na GitHubie (zobacz Lista przykładów). W tym przykładzie użyto parametru zasad pamięci podręcznej do przechowywania tokena dostępu OAuth do wielokrotnego użytku w wielu połączeniach wychodzących.
Każdy typ zasad jest definiowany przez schemat XML (.xsd). Dla porównania: schematy zasad są dostępne na GitHubie.
W poniższym przykładzie token dostępu OAuth jest zapisywany w pamięci podręcznej przy użyciu interfejsu PopulationCache . Token OAuth jest pobierany dla kolejnych żądań przez zasadę lookupCache. Po wygaśnięciu tokena dostępu JavaScript jest używany do pobierania nowego tokena dostępu, który jest następnie przechowywany w pamięci podręcznej przez zasadę PopulateCache.
Wypełnij pamięć podręczną
Użyj zasady PopulationCache do zapisywania danych w pamięci podręcznej. Ten przykład zapisuje dostęp OAuth token w pamięci podręcznej. Informacje o zasadach znajdziesz tutaj: Wypełnij zasadę pamięci podręcznej.
<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>
Zmienne mogą być wypełniane przez zasady lub kod. Zmienna Source
w tym przykładzie jest wypełniana przez to wywołanie JavaScriptu:context.setVariable('twitter-translate.apiAccessToken', getAccessToken());
Więcej informacji o kluczach pamięci podręcznej znajdziesz w sekcji Praca z kluczami pamięci podręcznej.
Wyszukaj dane w pamięci podręcznej
Wartości z pamięci podręcznej można pobierać za pomocą zasady lookupCache. Poniższa zasada Wyszukaj pamięć podręczną
odczytuje wartość z zakresu mycache
i zapisuje ją w funkcji
zmienna twitter-translate.apiAccessToken
. Informacje o zasadach znajdziesz w zasadach dotyczących pamięci podręcznej 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>
Unieważnianie zawartości pamięci podręcznej
Pamięć podręczna można jawnie unieważnić, określając nagłówek HTTP. Jeśli takie żądanie zawiera określony nagłówek HTTP, pamięć podręczna zostanie opróżniona. Zasady informacje referencyjne znajdziesz w artykule o zasadach nieprawidłowych pamięci podręcznej (w języku angielskim).
<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>