Anda melihat dokumentasi Apigee Edge.
Buka
dokumentasi Apigee X. info
Edge memungkinkan Anda memanggil satu Proxy API dari Proxy API lain. Fitur ini sangat berguna terutama jika Anda memiliki Proxy API yang berisi kode yang dapat digunakan kembali dan dapat digunakan oleh Proxy API lain.
Antipola
Memanggil satu Proxy API dari proxy lain menggunakan HTTPTargetConnection di endpoint target atau kode JavaScript kustom akan menghasilkan hop jaringan tambahan.
Memanggil Proxy 2 dari Proxy 1 menggunakan HTTPTargetConnection
Contoh kode berikut memanggil Proxy 2 dari Proxy 1 menggunakan HTTPTargetConnection:
<!-- /antipatterns/examples/2-1.xml --> <HTTPTargetConnection> <URL>http://myorg-test.apigee.net/proxy2</URL> </HTTPTargetConnection>
Memanggil Proxy 2 dari Proxy 1 dari kode JavaScript
Contoh kode berikutnya memanggil Proxy 2 dari Proxy 1 menggunakan JavaScript:
<!-- /antipatterns/examples/2-2.xml --> var response = httpClient.send('http://myorg-test.apigee.net/proxy2); response.waitForComplete();
Alur Kode
Untuk memahami alasan hal ini memiliki kelemahan yang melekat, kita perlu memahami rute yang diambil permintaan seperti yang diilustrasikan oleh diagram di bawah:
Seperti yang digambarkan dalam diagram, permintaan melintasi beberapa komponen terdistribusi, termasuk Router dan Message Processor.
Dalam contoh kode di atas, memanggil Proxy 2 dari Proxy 1 berarti permintaan harus dirutekan melalui rute tradisional (yaitu Router > MP) saat runtime. Hal ini akan mirip dengan memanggil API dari klien sehingga membuat beberapa hop jaringan yang menambah latensi. Hop ini tidak diperlukan mengingat permintaan Proxy 1 telah "mencapai" MP.
Dampak
Memanggil satu Proxy API dari Proxy API lain akan menimbulkan hop jaringan yang tidak perlu, yaitu permintaan harus diteruskan dari satu Message Processor ke Message Processor lain.
Praktik terbaik
- Gunakan fitur proxy chaining
untuk memanggil satu Proxy API dari proxy lain. Proxy chaining lebih efisien karena menggunakan koneksi lokal untuk mereferensikan endpoint target (Proxy API lain).
Contoh kode menunjukkan proxy chaining menggunakan LocalTargetConnection dalam definisi endpoint Anda:
<!-- /antipatterns/examples/2-3.xml --> <LocalTargetConnection> <APIProxy>proxy2</APIProxy> <ProxyEndpoint>default</ProxyEndpoint> </LocalTargetConnection>
Proxy API yang dipanggil akan dieksekusi dalam Message Processor yang sama; akibatnya, proxy ini menghindari hop jaringan seperti yang ditunjukkan pada gambar berikut:
Gambar 2: Alur Kode dengan Proxy Chaining