Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Edge, bir API proxy'sinden başka bir API proxy'sini çağırmanıza olanak tanır. Bu özellik, özellikle diğer API proxy'leri tarafından kullanılabilecek yeniden kullanılabilir kod içeren bir API proxy'niz varsa kullanışlıdır.
Antipattern
Bir API proxy'sini hedef uç noktada HTTPTargetConnection kullanarak veya özel JavaScript koduyla başka bir API proxy'sinden çağırmak ek bir ağ atlamasına neden olur.
HTTPTargetConnection kullanarak Proxy 1'den Proxy 2'yi çağırma
Aşağıdaki kod örneğinde, HTTPTargetConnection kullanılarak Proxy 1'den Proxy 2 çağrılıyor:
<!-- /antipatterns/examples/2-1.xml --> <HTTPTargetConnection> <URL>http://myorg-test.apigee.net/proxy2</URL> </HTTPTargetConnection>
JavaScript kodundan Proxy 1'den Proxy 2'yi çağırma
Aşağıdaki kod örneği, JavaScript kullanarak Proxy 1'den Proxy 2'yi çağırır:
<!-- /antipatterns/examples/2-2.xml --> var response = httpClient.send('http://myorg-test.apigee.net/proxy2); response.waitForComplete();
Kod Akışı
Bunun neden dezavantajlı olduğunu anlamak için aşağıdaki diyagramda gösterildiği gibi bir isteğin izlediği yolu anlamamız gerekir:
Diyagramda gösterildiği gibi, bir istek Yönlendirici ve Mesaj İşleyici dahil olmak üzere birden fazla dağıtılmış bileşenden geçer.
Yukarıdaki kod örneklerinde, Proxy 1'den Proxy 2'nin çağrılması, isteğin çalışma zamanında geleneksel rota (yani yönlendirici > MP) üzerinden yönlendirilmesi gerektiği anlamına gelir. Bu, bir istemciden API çağırmaya benzer ve gecikmeyi artıran birden fazla ağ atlaması oluşturur. Proxy 1 isteği MP'ye zaten "ulaştığı" için bu atlamalar gereksizdir.
Etki
Bir API proxy'sinden başka bir API proxy'sinin çağrılması gereksiz ağ atlamalarına neden olur. Yani istek, bir mesaj işleyiciden diğerine aktarılmalıdır.
En iyi uygulama
- Bir API proxy'sini başka bir API proxy'sinden çağırmak için proxy zincirleme özelliğini kullanın. Hedef uç noktaya (başka bir API proxy'si) referans vermek için yerel bağlantı kullandığından proxy zincirleme daha verimlidir.
Kod örneğinde, uç nokta tanımınızda LocalTargetConnection kullanılarak proxy zincirleme gösterilmektedir:
<!-- /antipatterns/examples/2-3.xml --> <LocalTargetConnection> <APIProxy>proxy2</APIProxy> <ProxyEndpoint>default</ProxyEndpoint> </LocalTargetConnection>
Çağrılan API proxy'si aynı mesaj işleyici içinde yürütülür. Bu nedenle, aşağıdaki şekilde gösterildiği gibi ağ atlaması önlenir:
Şekil 2: Proxy zincirleme ile kod akışı