zmienna przepływu wiadomości

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.