<ph type="x-smartling-placeholder"></ph>
Sie sehen die Dokumentation zu Apigee Edge.
Gehen Sie zur
Apigee X-Dokumentation. Weitere Informationen
Mit Edge können Sie einen API-Proxy von einem anderen API-Proxy aufrufen. Diese Funktion ist besonders nützlich, Sie haben einen API-Proxy, der wiederverwendbaren Code enthält, der von anderen API-Proxys verwendet werden kann.
Anti-Pattern
Einen API-Proxy von einem anderen aus über HTTPTargetConnection im Zielendpunkt aufrufen benutzerdefinierter JavaScript-Code führt zu einem zusätzlichen Netzwerk-Hop.
Proxy 2 von Proxy 1 mit HTTPTargetConnection aufrufen
Im folgenden Codebeispiel wird Proxy 2 von Proxy 1 mit HTTPTargetConnection aufgerufen:
<!-- /antipatterns/examples/2-1.xml --> <HTTPTargetConnection> <URL>http://myorg-test.apigee.net/proxy2</URL> </HTTPTargetConnection>
Proxy 2 aus Proxy 1 aus dem JavaScript-Code aufrufen
Im nächsten Codebeispiel wird Proxy 2 mit JavaScript von Proxy 1 aufgerufen:
<!-- /antipatterns/examples/2-2.xml --> var response = httpClient.send('http://myorg-test.apigee.net/proxy2); response.waitForComplete();
Codeablauf
Um zu verstehen, warum dies einen inhärenten Nachteil hat, müssen wir die Route verstehen, die Anfragen nehmen (im folgenden Diagramm dargestellt):
Wie im Diagramm dargestellt, durchläuft eine Anfrage mehrere verteilte Komponenten, darunter Router und Nachrichtenprozessor.
In den obigen Codebeispielen bedeutet das Aufrufen von Proxy 2 von Proxy 1, dass die Anfrage weitergeleitet werden muss. zur Laufzeit über die herkömmliche Route (Router > MP). Dies ist vergleichbar mit dem Aufruf einer API durch einen Client, wodurch mehrere Netzwerk-Hops entstehen, die die Latenz erhöhen. Diese Hops sind nicht erforderlich, da Proxy 1-Anfrage bereits „erreicht“ wurde des Abgeordneten.
Auswirkungen
Das Aufrufen eines API-Proxys von einem anderen API-Proxy führt zu unnötigen Netzwerk-Hops, d. h. -Anfrage von einem Message Processor an einen anderen Message Processor übergeben werden muss.
Best Practice
- Verwenden Sie das Feature zur Proxy-Verkettung, um einen API-Proxy von einem anderen aufzurufen. Die Proxy-Verkettung ist effizienter, da sie eine lokale Verbindung zum Verweis auf den Zielendpunkt (einen anderen API-Proxy) verwendet.
Das Codebeispiel zeigt die Proxy-Verkettung mit LocalTargetConnection in der Endpunktdefinition:
<!-- /antipatterns/examples/2-3.xml --> <LocalTargetConnection> <APIProxy>proxy2</APIProxy> <ProxyEndpoint>default</ProxyEndpoint> </LocalTargetConnection>
Der aufgerufene API-Proxy wird innerhalb desselben Message Processor ausgeführt. Infolgedessen wird der Netzwerk-Hop vermieden, wie in der folgenden Abbildung dargestellt: