Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. Informacje
Dostęp do zmiennej przepływu message
i jej właściwości zależą od punktu w procesie dostępu do serwera proxy interfejsu API, w którym uzyskuje ona dostęp. Jest dostępna we wszystkich kontekstach, ale niektóre obiekty, takie jak request
czy response
, nie są.
Przypadki użycia
Głównym przypadkiem użycia zmiennej przepływu message
jest sytuacja, gdy serwer proxy wchodzi na ścieżkę błędu: zmienne przepływu request
i response
są poza zakresem.
Na przykład w procesie błędów obiekt response
jest niedostępny. Jeśli wystąpi błąd, nie będzie można ustawić nagłówków odpowiedzi w obiekcie response
za pomocą zasady JavaScript. Zamiast tego możesz użyć jednej z tych opcji:
Oba te obiekty są dostępne w przepływie błędów i można ich używać do ustawiania nagłówków odpowiedzi z poziomu zasady JavaScriptu lub do uzyskiwania do nich dostępu w innych zasadach, które mogą używać zmiennych przepływu.
Za pomocą zasady AssignMessage możesz przypisać wartości, takie jak nagłówki, do obiektu response. Przypisanie wiadomości automatycznie obsługuje przechodzenie z przepływu żądań/odpowiedzi do przepływu błędów.
Innym przypadkiem użycia zmiennej message
jest rejestrowanie danych odpowiedzi w PostClientFlow z użyciem zasady MessageLogging. Jeśli używasz obiektu message
, możesz bezproblemowo logować informacje o odpowiedziach na serwerze proxy po spełnieniu warunków zarówno powodzenia, jak i błędu.
Przykłady
W trakcie procedury błędów możesz ustawić nagłówek odpowiedzi z zasady JavaScriptu za pomocą metody error
lub message
. Na przykład:
context.setVariable('error.header.FOO-1', 'error_header');
LUB
context.setVariable('message.header.FOO-2', 'message_header');
Jednak to wyrażenie nie będzie działać:
context.setVariable('response.header.FOO-3', 'response_header');
W tym przypadku zmienna response
jest poza zakresem procesu błędów. (Zwróć uwagę, że w logu czasu jest to oznaczone wizualnie przez zmienne ze znakiem równości i przekreślonym ukośnikiem).
Aby ustawić nagłówki odpowiedzi zarówno na ścieżce powodzenia, jak i błędów w jednej zasadzie, możesz użyć message
w zasadzie JavaScript. Na przykład:
<faultrules> <faultrule name="invalid_key_rule"> <step> <name>SetResponseHeaders</name> </step> <condition>(fault.name = "InvalidApiKey")</condition> </faultrule> </faultrules>
W tej zasadzie taki kod ustawia nagłówek błędu/odpowiedzi w dowolnym kontekście procesu:
context.setVariable('message.header.FOO-1', 'the header value');
Możesz ponownie użyć tej samej zasady w normalnym procesie ProxyResponse. Zasada message
jest dostępna we wszystkich kontekstach.