Información sobre las rutas

Estás viendo la documentación de Apigee Edge.
Ve a la Documentación de Apigee X.
información

Una ruta determina la ruta de una solicitud desde el ProxyEndpoint hasta el TargetEndpoint. En la ruta, se incluye la URL que se usa para acceder al ProxyEndpoint de la API y la URL del backend definido por el TargetEndpoint.

Mira este video para obtener una introducción a las rutas, que describen la relación entre los ProxyEndpoint y TargetEndpoint.

Determina la URL del extremo del proxy de API

En la siguiente imagen, se muestra una solicitud que entra al ProxyEndpoint desde una aplicación y que que la solicitud se dirija al servicio de backend:

Después de crear un proxy de API en Edge, la URL predeterminada que usa una app para acceder al proxy tiene el siguiente formato:

http://{org-name}-{env-name}.apigee.net/{base-path}/{resource-path}

https://{org-name}-{env-name}.apigee.net/{base-path}/{resource-path}

Donde:

  • {org-name} es el nombre de tu organización. Este nombre se genera cuando creas una cuenta en Edge.
  • {env-name} es la Nombre del entorno perimetral. De forma predeterminada, todas las organizaciones de Apigee creadas en la nube aprovisionado con dos entornos: “test” y "prod". Cuando se implementa un proxy de API, puedes implementarla en uno o ambos entornos.
  • {base-path} y {base-path} se definen cuando crea el proxy de API.

Cuando llega una solicitud a Edge, Edge analiza la URL para dirigirla a la ubicación ProxyEndpoint. Por ejemplo, se usa la siguiente URL para acceder a un proxy de API en Edge:

http://myOrg-prod.apigee.net/v1/weather/forecastrss

Si examinas la definición de ProxyEndpoint para el proxy de API en la figura anterior, puedes ver cómo Edge analiza esta URL:

  1. La parte del dominio de la URL, http://myOrg-prod.apigee.net, corresponde a un host virtual en Edge. En la definición de ProxyEndpoint anterior, el proxy de API usa la etiqueta <VirtualHost> para hacen referencia a un host virtual llamado default. Puedes tener varias VMs los hosts definidos en tu entorno.

    Un host virtual define los dominios y puertos en los que se expone un proxy de API. Un host virtual también define si se accede al proxy de API a través del protocolo HTTP protocolo HTTPS. Para obtener información detallada sobre los hosts virtuales, consulta Acerca de los hosts virtuales (Beta).
  2. La segunda parte de la URL, /v1/weather, está determinada por el <BasePath> en el ProxyEndpoint. La ruta base debe ser única para el proxy de API del entorno, de modo que dos Los proxies de API no tienen la misma ruta base.
  3. La tercera parte de la URL, /forecastrss, es un recurso definido por el Proxy de API con el flujo condicional correspondiente definido por la etiqueta <Flows>

Video: Mira un video breve para obtener más información sobre los extremos del proxy de API

Determina la URL del extremo de destino

La etiqueta <RouteRule> en una La definición de ProxyEndpoint determina el destino del proxy de la API y se evalúa después de todo. en la solicitud de PreFlow, Flujos condicionales y PostFlow de la solicitud de ProxyEndpoint. se procesan.

Un ProxyEndpoint puede definir el objetivo de la siguiente manera:

  • Una URL directa a un servicio de backend.
  • Una sola definición de TargetEndpoint.
  • Múltiples TargetEndpoints en los que el proxy de API delega la solicitud a un destino extremo basado en una condición.
  • Ruta o destino nulo, lo que significa que la solicitud no se reenvía a un destino. En cambio, todos los el procesamiento de la solicitud y la generación de la respuesta ocurre en Edge.

Video: Mira un video breve para obtener más información sobre los extremos de destino.

URL directa

Un ProxyEndpoint puede invocar directamente un servicio de backend y omitir cualquier TargetEndpoint con nombre configuración. Por ejemplo, la siguiente <RouteRule> siempre realiza una solicitud HTTP Llama a http://api.mycompany.com/myAPI:

<RouteRule name="default">
  <URL>http://api.mycompany.com/myAPI</URL> 
</RouteRule>

Sin embargo, debido a que no hay TargetEndpoint, solo puedes agregar políticas a los flujos definidos por el ProxyEndpoint.

Objetivo único

En una única definición de destino, ProxyEndpoint hace referencia a una sola definición de TargetEndpoint por nombre, como se muestra en la figura anterior:

<RouteRule name="default">
  <TargetEndpoint>default</TargetEndpoint>
</RouteRule>

Todas las solicitudes a este proxy de API se dirigen a la misma definición de TargetEndpoint. El &lt;URL&gt; en la TargetEndpoint determina la ubicación del servicio de backend. En la figura anterior, el objetivo La URL es http://weather.yahooapis.com.

Objetivos condicionales

La etiqueta &lt;RouteRule&gt; permite cuando diriges una solicitud a un objetivo en función de una condición. Puedes usar variables de flujo, parámetros de búsqueda, encabezados HTTP, contenido de mensajes o información contextual como la hora del día y la configuración regional para determinar el extremo de destino. Por ejemplo, puedes incluir un área geográfica, como EE.UU. y Reino Unido, en una URL de solicitud. Luego, puedes enrutar una solicitud a un extremo de destino en función de la región.

La siguiente regla de enrutamiento evalúa un encabezado HTTP en una solicitud. Si el encabezado HTTP routeTo tiene el valor TargetEndpoint1 y, luego, la solicitud se reenvía al TargetEndpoint llamado TargetEndpoint1. De lo contrario, la solicitud se reenvía. a TargetEndpoint2.

<RouteRule name="MyRoute">
  <Condition>request.header.routeTo = "TargetEndpoint1"</Condition>
  <TargetEndpoint>TargetEndpoint1</TargetEndpoint>
</RouteRule>
<RouteRule name="default">
 <TargetEndpoint>TargetEndpoint2</TargetEndpoint>
</RouteRule>

Si tienes varias reglas de enrutamiento, crea una como la "predeterminada", es decir, como una sin condición. Asegúrate de que la regla de enrutamiento predeterminada esté definida en el último lugar de la lista de rutas condicionales porque las reglas se evalúan de arriba abajo en el ProxyEndpoint.

Consulta también Rutas condicionales y Referencia de condiciones.

Video: Mira un video breve para aprender a enrutar un extremo de destino con destinos condicionales.

Ruta nula

Una ruta nula admite situaciones en las que no es necesario reenviar el mensaje de solicitud en un TargetEndpoint. Esto es útil cuando el ProxyEndpoint realiza todo el procesamiento necesario, por ejemplo, con JavaScript para llamar a un servicio externo.

En el siguiente ejemplo, se define una ruta nula:

<RouteRule name="GoNowhere"/>

Más información