Anda sedang melihat dokumentasi Apigee dan Apigee Hybrid.
Lihat dokumentasi
Apigee Edge.
Apigee memungkinkan Anda memanggil satu proxy API dari proxy API lain. Fitur ini berguna terutama jika Anda memiliki proxy API yang berisi kode yang dapat digunakan kembali oleh proxy API lainnya.
Antipola
Memanggil satu proxy API dari proxy API 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>https://api-test.example.com/proxy2</URL> </HTTPTargetConnection>
Panggil 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('https://api-test.example.com/proxy2); response.waitForComplete();
Alur Kode
Untuk memahami mengapa hal ini memiliki kerugian yang melekat, kita perlu memahami rute yang dilalui 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 (Router > MP) saat runtime. Hal ini akan mirip dengan memanggil API dari klien sehingga membuat beberapa lompatan 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 Pemroses Pesan ke Pemroses Pesan lain.
Praktik terbaik
- Gunakan fitur rantai proxy
untuk memanggil satu Proxy API dari Proxy API lainnya. Rantai proxy lebih
efisien karena menggunakan koneksi lokal untuk mereferensikan endpoint target (API Proxy lain).
Contoh kode menunjukkan chaining proxy menggunakan
LocalTargetConnectiondalam definisi endpoint Anda:<!-- /antipatterns/examples/2-3.xml --> <LocalTargetConnection> <APIProxy>proxy2</APIProxy> <ProxyEndpoint>default</ProxyEndpoint> </LocalTargetConnection>
Proxy API yang dipanggil akan dieksekusi dalam Pemroses Pesan yang sama; sehingga, hop jaringan dihindari seperti yang ditunjukkan dalam gambar berikut:
Gambar 2: Alur kode dengan chaining proxy