Przeglądasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
Dostęp do zmiennej przepływu message
i jej właściwości zależy od punktu w obrębie
z przepływem proxy interfejsu API, w którym uzyskuje się dostęp. Jest dostępny we wszystkich kontekstach, podczas gdy niektóre obiekty
takie jak request
czy response
.
Przypadki użycia
Podmiot zabezpieczeń zmiennej przepływu message
ma miejsce, gdy serwer proxy wpisze
przepływ błędów: zmienne procesu request
i response
są poza zakresem.
Na przykład w procesie błędu obiekt response
jest niedostępny. Nie
możliwość ustawiania nagłówków odpowiedzi w obiekcie response
za pomocą zasad JavaScript
w sytuacji błędu. Zamiast tego możesz użyć jednej z tych opcji:
Oba te obiekty są dostępne w procesie błędu i mogą być używane do ustawiania odpowiedzi nagłówki z zasady JavaScript lub są dostępne w innych zasadach, które mogą używać przepływu zmiennych.
Za pomocą zasady AssignMessage możesz przypisywać wartości, takie jak nagłówki, do obiektu response. Opcja Przypisz wiadomość automatycznie obsługuje przełącznik w od przepływu żądań/odpowiedzi do przepływu błędów.
Innym przypadkiem użycia zmiennej message
jest rejestrowanie danych odpowiedzi w interfejsie API
PostClientFlow z zasadami MessageLogging. Jeśli użyjesz obiektu message
,
możesz bezproblemowo rejestrować informacje o odpowiedziach zarówno po wystąpieniu sukcesu, jak i po wystąpieniu błędu
serwera proxy.
Przykłady
W przypadku procesu błędu możesz ustawić nagłówek odpowiedzi z poziomu zasady JavaScriptu, używając jednego z tych elementów:
error
lub message
. Na przykład:
context.setVariable('error.header.FOO-1', 'error_header');
LUB
context.setVariable('message.header.FOO-2', 'message_header');
Poniższe wyrażenie nie będzie jednak działać:
context.setVariable('response.header.FOO-3', 'response_header');
W tym przypadku zmienna response
wykracza poza zakres raportu
w procesie tworzenia błędów. (Zwróć uwagę, że w logu czasu jest to sygnalizowane przez zmienne oznaczone etykietą równa się
przekreśloną).
Aby ustawić nagłówki odpowiedzi zarówno dla przepływów powodzenia, jak i błędów w jednej zasadzie, musisz
można używać message
w zasadach JavaScript. Na przykład:
<faultrules> <faultrule name="invalid_key_rule"> <step> <name>SetResponseHeaders</name> </step> <condition>(fault.name = "InvalidApiKey")</condition> </faultrule> </faultrules>
W zasadach kod podobny do poniższego ustawia nagłówek błędu/odpowiedzi w dowolnym kontekście przepływu:
context.setVariable('message.header.FOO-1', 'the header value');
Możesz użyć tej samej zasady w normalnym procesie ProxyResponse. Będzie ona udana, ponieważ
Pole message
jest dostępne we wszystkich kontekstach.