Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Edge, bir API Proxy'sini başka bir API Proxy'sinden çağırmanıza olanak tanır. Bu özellik, özellikle de diğer API Proxy'leri tarafından kullanılabilecek yeniden kullanılabilir kod içeren bir API Proxy'niz olmalıdır.
Antipattern
Hedef uç noktasında HTTPTargetConnection kullanarak veya başka bir API'den bir API Proxy'si çağırma özel JavaScript kodu ek ağ atlamasına neden olur.
HTTPTargetConnection kullanarak Proxy 1'den Proxy 2'yi çağırma
Aşağıdaki kod örneği, HTTPTargetConnection kullanarak Proxy 1'den Proxy 2'yi çağırır:
<!-- /antipatterns/examples/2-1.xml --> <HTTPTargetConnection> <URL>http://myorg-test.apigee.net/proxy2</URL> </HTTPTargetConnection>
Proxy 1'den Proxy 2'yi JavaScript kodundan çağırma
Sonraki 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 doğal bir dezavantaj olduğunu anlamak için talebin yönlendirilmesini sağlamamız gerekir. aşağıdaki diyagramda gösterildiği gibidir:
Şemada gösterildiği gibi, bir istek aşağıdakiler de dahil olmak üzere birden çok dağıtılmış bileşenden geçer: Yönlendirici ve Mesaj İşleyici.
Yukarıdaki kod örneklerinde, Proxy 2'nin Proxy 1'den çağrılması, isteğin yönlendirilmesi gerektiği anlamına gelir geleneksel rota üzerinden (yani Yönlendirici > MP) ilerler. Bu işlem, API çağırmaya benzer. ve böylece gecikmeyi artıran birden çok ağ atlaması yapabilir. Bu atlama noktaları Proxy 1 isteğinin zaten "ulaşıldığını" göz önünde bulundurarak gereksiz karar vermemiz gerek.
Etki
Bir API Proxy'sinin başka bir API Proxy'sinden çağrılması, gereksiz ağ atlamalarına neden olur. isteğinin bir Mesaj İşleyiciden başka bir Mesaj İşleyene iletilmesi gerekir.
En iyi uygulama
- Proxy zinciri kullanma
özelliğini kullanmanızı öneririz. Proxy zinciri oluşturma
hedef uç noktaya (başka bir API Proxy'si) başvurmak için yerel bağlantı kullandığından daha verimlidir.
Kod örneği, uç noktanızda LocalTargetConnection kullanarak proxy zincirlemesini gösterir tanım:
<!-- /antipatterns/examples/2-3.xml --> <LocalTargetConnection> <APIProxy>proxy2</APIProxy> <ProxyEndpoint>default</ProxyEndpoint> </LocalTargetConnection>
Çağrılan API Proxy'si, aynı Mesaj İşleyen içinde yürütülür; sonuç olarak aşağıda gösterildiği gibi ağ atlamasını sağlar: