Informationen zu Routen

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

Eine Route bestimmt den Pfad einer Anfrage vom ProxyEndpoint zum TargetEndpoint. Die Route enthält die URL, die für den Zugriff auf den API-ProxyEndpoint verwendet wird, sowie die URL des Back-End-Dienstes, der durch TargetEndpoint definiert ist.

In diesem Video erhalten Sie eine Einführung in Routen, in denen die Beziehung zwischen ProxyEndpoint und TargetEndpoint beschrieben wird.

Die URL des API-Proxy-Endpunkts bestimmen.

Die folgende Abbildung zeigt eine Anfrage, die von einer Anwendung bei ProxyEndpoint eingeht und an den Back-End-Dienst weitergeleitet wird:

Nachdem Sie einen API-Proxy in Edge erstellt haben, hat die Standard-URL, die eine App für den Zugriff auf den Proxy verwendet, folgendes Format:

http://{org-name}-{env-name}.apigee.net/{base-path}/{resource-path}

https://{org-name}-{env-name}.apigee.net/{base-path}/{resource-path}

Dabei gilt:

  • {org-name} ist der Name Ihrer Organisation. Dieser Name wird erstellt, wenn Sie ein Konto in Edge erstellen.
  • {env-name} ist der Name der Edge-Umgebung. Standardmäßig werden alle in der Cloud erstellten Apigee-Organisationen mit zwei Umgebungen bereitgestellt: test und prod. Wenn Sie einen API-Proxy bereitstellen, können Sie ihn in einer oder beiden Umgebungen bereitstellen.
  • {base-path} und {resource-path} werden beim Erstellen des API-Proxys definiert.

Wenn eine Anfrage bei Edge eingeht, parst Edge die URL, um die Anfrage an den richtigen ProxyEndpoint zu leiten. Die folgende URL wird beispielsweise für den Zugriff auf einen API-Proxy in Edge verwendet:

http://myOrg-prod.apigee.net/v1/weather/forecastrss

Wenn Sie die ProxyEndpoint-Definition für den API-Proxy in der Abbildung oben prüfen, sehen Sie, wie diese URL von Edge geparst wird:

  1. Der Domänenteil der URL, http://myOrg-prod.apigee.net, entspricht einem virtuellen Host in Edge. In der obigen ProxyEndpoint-Definition verwendet der API-Proxy das Tag <VirtualHost>, um auf einen virtuellen Host namens default zu verweisen. Sie können in Ihrer Umgebung mehrere virtuelle Hosts definieren.

    Ein virtueller Host definiert die Domains und Ports, auf denen ein API-Proxy verfügbar gemacht wird. Ein virtueller Host definiert außerdem, ob der Zugriff auf den API-Proxy über das HTTP-Protokoll oder über das verschlüsselte HTTPS-Protokoll erfolgt. Ausführliche Informationen zu virtuellen Hosts finden Sie unter Informationen zu virtuellen Hosts (Beta).
  2. Der zweite Teil der URL, /v1/weather, wird durch das Element <BasePath> im ProxyEndpoint bestimmt. Der Basispfad muss im API-Proxy für die Umgebung eindeutig sein, damit zwei API-Proxys nicht denselben Basispfad haben.
  3. Der dritte Teil der URL, /forecastrss, ist eine Ressource, die vom API-Proxy mit dem entsprechenden bedingten Fluss definiert wird, der durch das Tag <Flows> definiert wird.

Video: Schauen Sie sich ein kurzes Video an, um mehr über die API-Proxy-Endpunkte zu erfahren.

URL des Zielendpunkts ermitteln

Das <RouteRule>-Tag in einer ProxyEndpoint-Definition bestimmt das Ziel des API-Proxys. Es wird ausgewertet, nachdem alle Richtlinien in PreFlow, bedingten Flows und PostFlow der ProxyEndpoint-Anfrage verarbeitet wurden.

Ein ProxyEndpoint kann das Ziel folgendermaßen definieren:

  • Eine direkte URL zu einem Back-End-Dienst.
  • Eine einzelne TargetEndpoint-Definition.
  • Mehrere TargetEndpunkte, bei denen der API-Proxy die Anfrage basierend auf einer Bedingung an einen Zielendpunkt delegiert.
  • Nullroute oder kein Ziel, d. h., die Anfrage wird nicht an ein Ziel weitergeleitet. Stattdessen findet die gesamte Verarbeitung der Anfrage und die Erzeugung der Antwort auf Edge statt.

Video: In diesem kurzen Video erfahren Sie mehr über Zielendpunkte.

Direkte URL

Ein ProxyEndpoint kann einen Back-End-Dienst direkt aufrufen und jede benannte TargetEndpoint-Konfiguration umgehen. Beispielsweise erfolgt durch die folgende <RouteRule> immer ein HTTP-Aufruf an http://api.mycompany.com/myAPI:

<RouteRule name="default">
  <URL>http://api.mycompany.com/myAPI</URL> 
</RouteRule>

Da kein TargetEndpoint vorhanden ist, können Sie Richtlinien nur den vom ProxyEndpoint definierten Abläufen hinzufügen.

Einzelnes Ziel

In einer einzelnen Zieldefinition verweist der ProxyEndpoint auf eine einzelne TargetEndpoint-Definition namentlich, wie in der obigen Abbildung dargestellt:

<RouteRule name="default">
  <TargetEndpoint>default</TargetEndpoint>
</RouteRule>

Alle Anfragen an diesen API-Proxy werden an dieselbe TargetEndpoint-Definition weitergeleitet. Das Tag <URL> in TargetEndpoint bestimmt den Standort des Back-End-Dienstes. In der Abbildung oben lautet die Ziel-URL http://weather.yahooapis.com.

Bedingte Ziele

Mit dem <RouteRule>-Tag können Sie eine Anfrage basierend auf einer Bedingung an ein Ziel weiterleiten. Sie können Ablaufvariablen, Abfrageparameter, HTTP-Header, Nachrichteninhalt oder Kontextinformationen wie Tageszeit und Sprache verwenden, um den Zielendpunkt zu ermitteln. Zum Beispiel können Sie einen geografischen Bereich, z. B. "US" und "UK", in eine Anfrage-URL aufnehmen. Anschließend können Sie eine Anfrage basierend auf der Region an einen Zielendpunkt weiterleiten.

Mit der folgenden Routingregel wird ein HTTP-Header in einer Anfrage ausgewertet. Wenn der HTTP-Header routeTo den Wert TargetEndpoint1 enthält, wird die Anfrage an den TargetEndpoint „TargetEndpoint1“ weitergeleitet. Andernfalls wird die Anfrage an TargetEndpoint2 weitergeleitet.

<RouteRule name="MyRoute">
  <Condition>request.header.routeTo = "TargetEndpoint1"</Condition>
  <TargetEndpoint>TargetEndpoint1</TargetEndpoint>
</RouteRule>
<RouteRule name="default">
 <TargetEndpoint>TargetEndpoint2</TargetEndpoint>
</RouteRule>

Wenn Sie mehrere Routingregeln haben, erstellen Sie eine als „Standard“, d. h. als Routingregel ohne Bedingung. Achten Sie darauf, dass die Standardroutingregel an letzter Stelle in der Liste der bedingten Routen definiert ist, da Regeln von oben nach unten im ProxyEndpoint ausgewertet werden.

Siehe auch Bedingte Routen und Referenz für Bedingungen.

Video: In diesem kurzen Video erfahren Sie, wie Sie mithilfe von bedingten Zielen eine Weiterleitung an einen Zielendpunkt vornehmen.

Nullroute

Eine Nullroute unterstützt Szenarien, in denen die Anfragenachricht nicht an einen TargetEndpoint weitergeleitet werden muss. Dies ist nützlich, wenn der ProxyEndpoint alle erforderlichen Verarbeitungen ausführt, z. B. indem JavaScript zum Aufrufen eines externen Dienstes verwendet wird.

Im folgenden Beispiel wird eine Nullroute definiert:

<RouteRule name="GoNowhere"/>

Weitere Informationen