Stai visualizzando la documentazione relativa a Apigee e Apigee ibrido.
Visualizza la documentazione di
Apigee Edge.
Apigee consente di richiamare un proxy API da un altro proxy API. Questa funzionalità è utile soprattutto se hai un proxy API che contiene codice riutilizzabile che può essere utilizzato da altri proxy API.
Antipattern
La chiamata a un proxy API da un altro utilizzando HTTPTargetConnection
nell'endpoint di destinazione o il codice JavaScript personalizzato comporta un ulteriore hop di rete.
Richiama il proxy 2 dal proxy 1 utilizzando HTTPTargetConnection
Il seguente esempio di codice richiama il proxy 2 dal proxy 1 utilizzando HTTPTargetConnection
:
<!-- /antipatterns/examples/2-1.xml --> <HTTPTargetConnection> <URL>https://api-test.example.com/proxy2</URL> </HTTPTargetConnection>
Richiama il proxy 2 dal proxy 1 dal codice JavaScript
Il successivo esempio di codice richiama il proxy 2 dal proxy 1 utilizzando JavaScript:
<!-- /antipatterns/examples/2-2.xml --> var response = httpClient.send('https://api-test.example.com/proxy2); response.waitForComplete();
Flusso codice
Per comprendere perché ciò ha uno svantaggio intrinseco, dobbiamo comprendere il percorso seguito da una richiesta, come illustrato nel diagramma seguente:
Come illustrato nel diagramma, una richiesta attraversa più componenti distribuiti, inclusi il router e il processore di messaggi.
Negli esempi di codice precedenti, richiamare il proxy 2 dal proxy 1 significa che la richiesta deve essere instradata tramite la route tradizionale (Router > MP) in fase di runtime. Sarebbe come richiamare un'API da un client, effettuando così più hop di rete che aumentano la latenza. Questi hop non sono necessari, considerando che la richiesta proxy 1 ha già raggiunto il MP.
Impatto
Il richiamo di un proxy API da un altro proxy API comporta hop di rete non necessari, pertanto la richiesta deve essere passata da un processore di messaggi a un altro.
Best practice
- Utilizza la funzionalità di collegamento del proxy per richiamare un proxy API da un altro proxy API. Il concatenamento del proxy è più efficiente in quanto utilizza la connessione locale per fare riferimento all'endpoint di destinazione (un altro proxy API).
L'esempio di codice mostra il concatenamento del proxy utilizzando
LocalTargetConnection
nella definizione dell'endpoint:<!-- /antipatterns/examples/2-3.xml --> <LocalTargetConnection> <APIProxy>proxy2</APIProxy> <ProxyEndpoint>default</ProxyEndpoint> </LocalTargetConnection>
Il proxy API richiamato viene eseguito all'interno dello stesso processore di messaggi; di conseguenza, evita l'hop di rete come mostrato nella figura seguente: