zmienna przepływu wiadomości

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.