Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
Edge позволяет вызывать один API-прокси из другого API-прокси. Эта функция особенно полезна, если у вас есть API-прокси, содержащий многократно используемый код, который может применяться другими API-прокси.
Антипаттерн
Вызов одного API-прокси из другого с использованием HTTPTargetConnection в целевой конечной точке или пользовательского кода JavaScript приводит к дополнительному сетевому переходу.
Вызовите прокси 2 из прокси 1, используя HTTPTargetConnection.
Приведенный ниже пример кода вызывает прокси-сервер 2 из прокси-сервера 1 с использованием HTTPTargetConnection:
<!-- /antipatterns/examples/2-1.xml --> <HTTPTargetConnection> <URL>http://myorg-test.apigee.net/proxy2</URL> </HTTPTargetConnection>
Вызов прокси 2 из прокси 1 из кода JavaScript
В следующем примере кода с помощью JavaScript вызывается прокси-сервер 2 из прокси-сервера 1:
<!-- /antipatterns/examples/2-2.xml --> var response = httpClient.send('http://myorg-test.apigee.net/proxy2); response.waitForComplete();
Последовательность выполнения кода
Чтобы понять, почему это имеет существенный недостаток, нам необходимо разобраться в пути, который проходит запрос, как показано на диаграмме ниже:

Как показано на диаграмме, запрос проходит через несколько распределенных компонентов, включая маршрутизатор и обработчик сообщений.
В приведенных выше примерах кода вызов прокси 2 из прокси 1 означает, что запрос должен быть маршрутизирован по традиционному маршруту (т.е. маршрутизатор > MP) во время выполнения. Это было бы похоже на вызов API с клиента, что привело бы к многочисленным сетевым переходам, увеличивающим задержку. Эти переходы излишни, поскольку запрос от прокси 1 уже «достиг» MP.
Влияние
Вызов одного API-прокси из другого API-прокси влечет за собой ненужные сетевые переходы, то есть запрос должен передаваться от одного обработчика сообщений к другому обработчику сообщений.
Передовая практика
- Используйте функцию цепочки прокси для вызова одного API-прокси из другого. Цепочка прокси более эффективна, поскольку использует локальное соединение для ссылки на целевую конечную точку (другой API-прокси).
В приведенном примере кода показано использование цепочки прокси-серверов с помощью LocalTargetConnection в определении конечной точки:
<!-- /antipatterns/examples/2-3.xml --> <LocalTargetConnection> <APIProxy>proxy2</APIProxy> <ProxyEndpoint>default</ProxyEndpoint> </LocalTargetConnection>
Вызванный API-прокси выполняется в рамках того же обработчика сообщений; в результате этого удается избежать сетевого перехода, как показано на следующем рисунке:

Рисунок 2 : Схема выполнения кода с использованием цепочки прокси-объектов.