Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. Информация
Маршрут определяет путь запроса от ProxyEndpoint до TargetEndpoint. Маршрут включает URL, используемый для доступа к API ProxyEndpoint, и URL внутреннего сервиса, определенного TargetEndpoint.
В этом видео рассказывается о маршрутах и взаимосвязи между ProxyEndpoint и TargetEndpoint.
Как определить URL конечной точки прокси-сервера API
На изображении ниже показан запрос, поступающий в ProxyEndpoint из приложения и перенаправляемый в бэкенд-службу:

После создания прокси API в Edge URL по умолчанию, который приложение использует для доступа к прокси, имеет следующий вид:
http://{org-name}-{env-name}.apigee.net/{base-path}/{resource-path}
https://{org-name}-{env-name}.apigee.net/{base-path}/{resource-path}где:
- {org-name} – название вашей организации. Это имя создается при регистрации аккаунта в Edge.
- {env-name} – это название среды Edge. По умолчанию все организации Apigee, созданные в облаке, предоставляются с двумя средами: test и prod. При развертывании прокси-сервера API вы можете выбрать развертывание в одной или обеих средах.
- {base-path} и {resource-path} определяются при создании прокси-сервера API.
Когда в Edge поступает запрос, Edge анализирует URL, чтобы направить запрос в нужную конечную точку прокси. Например, следующий URL используется для доступа к прокси-серверу API в Edge:
http://myOrg-prod.apigee.net/v1/weather/forecastrss
Если вы изучите определение ProxyEndpoint для прокси-сервера API на рисунке выше, то увидите, как этот URL анализируется Edge:
- Доменная часть URL http://myOrg-prod.apigee.net соответствует виртуальному хосту в Edge. В приведенном выше определении ProxyEndpoint прокси-сервер API использует тег <VirtualHost>, чтобы ссылаться на виртуальный хост с именем default. В вашей среде может быть определено несколько виртуальных хостов.
Виртуальный хост определяет домены и порты, через которые предоставляется доступ к прокси-серверу API. Виртуальный хост также определяет, осуществляется ли доступ к прокси-серверу API с помощью протокола HTTP или зашифрованного протокола HTTPS. Подробнее о виртуальных хостах (бета)… - Вторая часть URL, /v1/weather, определяется элементом <BasePath> в ProxyEndpoint. Базовый путь должен быть уникальным для прокси API в среде, чтобы у двух прокси API не было одинакового базового пути.
- Третья часть URL, /forecastrss, – это ресурс, определенный прокси-сервером API с соответствующим условным потоком, заданным тегом <Flows>.
Видео. Посмотрите короткое видео о конечных точках прокси-сервера API.
Определение URL целевой конечной точки
Тег <RouteRule> в определении ProxyEndpoint определяет целевой объект прокси-сервера API и оценивается после обработки всех правил в PreFlow, Conditional Flows и PostFlow запроса ProxyEndpoint.
В ProxyEndpoint можно указать целевой объект следующим образом:
- Прямой URL бэкенд-службы.
- Одно определение TargetEndpoint.
- Несколько TargetEndpoint, в которых прокси-сервер API делегирует запрос целевой конечной точке на основе условия.
- Нулевой маршрут или цель, то есть запрос не пересылается в целевой объект. Вместо этого вся обработка запроса и генерация ответа происходят на устройстве Edge.
Видео. Посмотрите короткое видео о целевых конечных точках.
Прямой URL
ProxyEndpoint может напрямую вызывать бэкенд-службу, игнорируя любую конфигурацию TargetEndpoint. Например, следующий код <RouteRule> всегда выполняет вызов HTTP к http://api.mycompany.com/myAPI:
<RouteRule name="default"> <URL>http://api.mycompany.com/myAPI</URL> </RouteRule>
Однако, поскольку TargetEndpoint отсутствует, вы можете добавлять правила только в потоки, определенные ProxyEndpoint.
Одна цель
В определении целевого сервиса ProxyEndpoint по имени указывается определение TargetEndpoint, как показано на рисунке выше:
<RouteRule name="default"> <TargetEndpoint>default</TargetEndpoint> </RouteRule>
Все запросы к этому прокси-серверу API направляются в одно и то же определение TargetEndpoint. Тег <URL> в TargetEndpoint определяет местоположение бэкенд-службы. На рисунке выше целевой URL – http://weather.yahooapis.com.
Условные цели
Тег <RouteRule> позволяет перенаправлять запрос на целевой объект в зависимости от условия. Чтобы определить целевую конечную точку, можно использовать переменные потока, параметры запроса, заголовки HTTP, контент сообщения или контекстную информацию, например время суток и местоположение. Например, в URL запроса можно указать географическую область, такую как США или Великобритания. Затем вы можете перенаправить запрос в целевую конечную точку в зависимости от региона.
Ниже приведено правило маршрута, которое оценивает HTTP-заголовок в запросе. Если заголовок HTTP routeTo имеет значение TargetEndpoint1, запрос пересылается в конечную точку TargetEndpoint1. Если нет, запрос перенаправляется в TargetEndpoint2.
<RouteRule name="MyRoute"> <Condition>request.header.routeTo = "TargetEndpoint1"</Condition> <TargetEndpoint>TargetEndpoint1</TargetEndpoint> </RouteRule> <RouteRule name="default"> <TargetEndpoint>TargetEndpoint2</TargetEndpoint> </RouteRule>
Если у вас несколько правил маршрутизации, создайте одно из них как правило по умолчанию, то есть без условия. Убедитесь, что правило маршрута по умолчанию определено последним в списке условных маршрутов, поскольку правила оцениваются сверху вниз в ProxyEndpoint.
Также ознакомьтесь с условными маршрутами и условиями.
Видео. Посмотрите короткое видео о том, как направлять трафик в целевую конечную точку с помощью условных целей.
Нулевой маршрут
Нулевой маршрут поддерживает сценарии, в которых запрос не нужно пересылать в TargetEndpoint. Это полезно, когда ProxyEndpoint выполняет всю необходимую обработку, например с помощью JavaScript для вызова внешнего сервиса.
В следующем примере определяется нулевой маршрут:
<RouteRule name="GoNowhere"/>