Zmienne żądań i odpowiedzi

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

Wysyłając żądanie do serwera proxy interfejsu API, możesz przekazać niektóre lub wszystkie z tych informacji: w zależności od konfiguracji serwera proxy interfejsu API:

  • Nagłówki żądania
  • Parametry zapytania
  • Dane formularzy
  • Ładunki XML lub JSON
  • Identyfikatory URI zasobów

Domyślnie wszystkie dane w żądaniu są przekazywane bez zmian od punktu ProxyEndpoint do Docelowy punkt końcowy. Dlatego gdy docelowy punkt końcowy wysyła żądanie do serwera backendu, wszystkie są przekazywane do usługi backendu.

To samo dotyczy odpowiedzi otrzymanej przez Edge z usługi backendu. Domyślnie wszystkie dane otrzymane w odpowiedzi są przekazywane bez zmian do aplikacji, z której pochodzi użytkownika.

W jaki sposób dane żądania są przekazywane do backendu serwer?

Poniższa ilustracja przedstawia definicję serwera proxy interfejsu API:

Żądanie od klienta HTTP przechodzące przez punkt końcowy serwera proxy do docelowego punktu końcowego w backendzie w celu dotarcia do usługi HTTP. Podano przykłady punktu końcowego serwera proxy i docelowego punktu końcowego.

Dla tego serwera proxy interfejsu API:

  • Host wirtualny serwera proxy interfejsu API: „default”
  • Domena zdefiniowana przez hosta wirtualnego: „http://myOrg-prod.apigee.net”
  • Ścieżka podstawowa serwera proxy: „/v1/pogoda”
  • Docelowy punkt końcowy określony przez regułę trasy: „default”
  • Docelowy adres URL: „http://Weather.yahooapis.com”

Aplikacja kliencka wysyła żądanie GET do serwera proxy interfejsu API za pomocą: Polecenie curl:

curl -X GET http://myOrg-prod.apigee.net/v1/weather/forecastrss?w=12797282

Zwróć uwagę, że to żądanie zawiera zasób „prognozy” i jeden parametr zapytania, w Edge analizuje żądanie jako poniżej i przypisuje części żądania do zmiennych przepływu:

{request.verb} {proxy.basepath}/{proxy.pathsuffix}?{request.querystring}

Zmienne przepływu mają następujące wartości:

  • request.verb: „POBIERZ”
  • proxy.basepath: „/v1/pogoda”
  • proxy.pathsuffix: "prognozy"
  • request.querystring: „w=12797282”
.

Element TargetEndpoint wysyła żądanie do usługi backendu przy użyciu informacji z metody żądanie:

{request.verb} {target.basepath}/{proxy.pathsuffix}?{request.querystring}

Zwróć uwagę, że parametry zasobów i zapytania określone w żądaniu są automatycznie uwzględniane w żądaniu do serwera backendu. Zgodnie z definicją TargetEndpoint żądanie ma postać:

curl -X GET http://weather.yahooapis.com/forecastrss?w=12797282

Podobnie jak w przypadku parametrów zapytania, wszystkie nagłówki i parametry formularza zawarte w żądaniu wysyłanym do interfejsu API są przekazywane do serwera backendu. Możesz na przykład wysłać poniższe żądanie, które zawiera ciąg nagłówek:

curl -X GET -H 'Content-type:application/xml' http://myOrg-prod.apigee.net/v1/weather/forecastrss?w=12797282

Możesz też poprosić w formularzu poniżej o dołączenie nagłówka i danych formularza:

curl -X POST -H "Content-type:application/json" -d \
  '{"email" : "janetutorialxml@example.com",
    "firstName" : "Jane",
    "lastName" : "Tutorial",
    "userName" : "jtutorialxml"
  }' \
  http://myOrg-prod.apigee.net/v1/register/user

W obu przykładach nagłówki i dane formularzy są przekazywane do usługi backendu bez zmian. są reprezentowane przez zmienne przepływu, takie jak request.headers.count, request.headers.names Dane formularza są reprezentowane przez zmienne przepływu, takie jak request.formparam.count i request.formparam.names.

Jak są zwracane dane odpowiedzi?

Domyślnie wszystkie dane odebrane przez Edge z usługi backendu w odpowiedzi są przekazywane bez zmian w aplikacji, z której pochodzi żądanie. Zgodnie z opisem powyżej w przypadku żądania dane zwrócony w odpowiedzi jest dostępny przez zmienne przepływu w Edge. Aby dowiedzieć się więcej, patrz informacje o zmiennych przepływu.

Dostęp do danych żądań i odpowiedzi w serwer proxy API

W wielu sytuacjach konieczne jest zmodyfikowanie danych żądania przed wysłaniem ich do backendu serwera. Na przykład:

  • Aby usunąć informacje o zabezpieczeniach używane przez Edge do weryfikowania żądań. Ta informacja nie jest wymagane przez usługę backendu.
  • Aby dodać dane wysyłane do usługi backendu, na przykład w celu śledzenia użytkowników lub zbierania Analytics.
  • Warunkowe przetwarzanie żądania na podstawie danych dotyczących żądania. Serwer proxy interfejsu API może na przykład mają wiele punktów docelowych. Docelowy punkt końcowy używany przez żądanie jest określany na podstawie żądania i skalowalnych danych. Następnie musisz usunąć te dane z żądania przed wysłaniem ich do usługi backendu.

To samo dotyczy danych w odpowiedzi. Podczas przetwarzania odpowiedzi serwer proxy interfejsu API być może warto je zmodyfikować przed zwróceniem aplikacji, która je wysłała.

Wiadomości z prośbą o dostęp

Za pomocą zasad możesz wyświetlać fragmenty wiadomości z prośbą i je zmieniać. Są to m.in.:

  • Nagłówki
  • Parametry zapytania
  • Parametry formularza
  • Źródłowy adres IP
  • Treść komunikatu HTTP

W normalnym procesie po przetworzeniu żądania serwer proxy wysyła przekształcone do środowiska docelowego.

Zasady mogą analizować zmienne żądań, a następnie przekształcać lub odrzucać żądania na podstawie zawartości tych zmiennych. Zasady przekształcają żądania, ustawiając odpowiednie zmienne. np. zmiennych odpowiadających nagłówkom żądań.

Dostęp do wiadomości z odpowiedziami

Zasady mogą uzyskiwać dostęp do komponentów wiadomości za pomocą zmiennych, które mają zastosowanie do wiadomości w tym nagłówek, parametry zapytania, parametry formularza, źródłowy adres IP, kod HTTP treść wiadomości itd.

Serwer proxy odbiera wiadomość z odpowiedzią, a następnie stosuje do niej serię zasad na podstawie ocenionych w odpowiedzi, które mogą zmieniać lub przekształcać odpowiedź.

Zasady mogą analizować zmienne odpowiedzi, a następnie przekształcać lub odrzucać żądanie na podstawie zawartości tych zmiennych. Zasady zmieniają odpowiedzi, ustawiając odpowiednie zmienne. np. zmiennych odpowiadających nagłówkom odpowiedzi.

Typowe zasady dostępu do zmiennych przepływu

Edge definiuje kilka zasad, których można używać do przetwarzania danych żądań i odpowiedzi. Te zasady obejmują:

  • Zasady AssignMessage: tworzenie lub modyfikowanie żądań HTTP i wiadomości z odpowiedziami podczas korzystania z serwera proxy interfejsu API. przepływu danych. Tworzy też i wypełnia nowe zmienne przepływu.
  • Polityka wyodrębniania zmiennych: wyodrębnia treść z wiadomości, w tym nagłówki, ścieżki URI, ładunki i do użycia w instrukcji warunku. Zasada stosuje następnie wzorzec tekstu do treść wiadomości, a po znalezieniu dopasowania ustawia wyznaczoną zmienną.
  • Zasada JSONtoXML i XMLtoJSON: Konwertuje wiadomości z formatu JSON (JavaScript Object Notation) na rozszerzalny język znaczników (XML) lub odwrotnie.
  • zasady JavaCallout, zasady JavaScript, zasady PythonScript, Zasada RegularExpressionProtection: te zasady umożliwiają pisanie skryptu umożliwiającego dostęp do zmiennych przepływu. który zawiera dane żądań i odpowiedzi.