Estás viendo la documentación de Apigee Edge.
Ve a la
documentación de Apigee X. info
Los flujos son los componentes básicos de los proxies de API. Los flujos te permiten programar el comportamiento de una API, ya que te permiten configurar la secuencia en la que un proxy de API ejecuta las políticas y el código.
Para obtener una descripción general conceptual de los flujos, consulta Controla cómo se ejecuta un proxy con flujos.
En este tema, se describe cómo crear flujos condicionales y agregar lógica (políticas) a los flujos en un nivel alto. El arte de crear condiciones implica más detalles de los que se tratan en este tema. Para obtener más detalles, consulta Descripción general de las variables de flujo y Condiciones con variables de flujo.
Conecta políticas a los flujos
Edge incluye muchos tipos diferentes de políticas predefinidas para implementar seguridad, administrar el tráfico y manipular mensajes. Además, las políticas te permiten agregar tu propio código personalizado para personalizar el procesamiento de mensajes por completo.
Por ejemplo:
- Adjunta una política de seguridad de OAuth a la solicitud de PreFlow del ProxyEndpoint. Debido a que el PreFlow de la solicitud de ProxyEndpoint es el primer flujo de la canalización, puedes rechazar una solicitud de inmediato si infringe tus políticas de seguridad.
- Adjunta una política de conversión de JSON a XML a la respuesta PostFlow de TargetEndpoint para convertir una respuesta de JSON a XML
- Adjunta una política de JavaScript a un flujo condicional del ProxyEndpoint para ejecutar el código JavaScript a fin de procesar la solicitud
Una vez que hayas creado un flujo condicional, estará disponible para la vinculación de políticas. Con el flujo seleccionado, haz clic en el ícono + Paso (+ Step) en el diagrama de solicitud o respuesta para agregar una política nueva o existente al flujo.
Cuando adjuntas la política al flujo seleccionado, configuras el proxy de API para aplicar la política de cuotas solo a las solicitudes realizadas a esa combinación de URI y verbo. Por ejemplo, si adjuntas la política al flujo de learn en la solicitud, se generará el siguiente XML en la vista de código del editor de proxy:
<ProxyEndpoint name="default"> ... <Flow name="issue"> <Description/> <Request> <Step> <Name>Quota-2</Name> </Step> </Request> <Response/> <Condition>(proxy.pathsuffix MatchesPath "/issue/**") and (request.verb = "GET")</Condition> </Flow> ... </ProxyEndpoint>
En esta configuración, si una solicitud GET ingresa en el proxy de API con un patrón de URI de .../issue/** (/issue/ con cualquier elemento en el URI después de la última barra diagonal), la cuota se aplica a esa llamada a la API.
Información sobre los flujos condicionales
Las políticas adjuntas a PreFlow o PostFlow siempre se ejecutan. Sin embargo, las políticas en un flujo condicional se ejecutan solo si la condición del flujo se evalúa como verdadera.
Durante el procesamiento de una solicitud y una respuesta, solo se ejecuta un flujo condicional por segmento: el primer flujo cuya condición se evalúa como verdadera. Esto significa que puedes ejecutar un flujo condicional como parte de cada uno de los siguientes procesos:
- Canalización de solicitudes de ProxyEndpoint
- Canalización de solicitudes de TargetEndpoint
- Canalización de respuestas de ProxyEndpoint
- Canalización de respuestas de TargetEndpoint
Video: Mira este video breve para obtener más información sobre los flujos condicionales.
Por ejemplo, la siguiente definición de ProxyEndpoint muestra un flujo condicional que el ProxyEndpoint ejecuta en cualquier solicitud HTTP GET
al proxy de API:
<ProxyEndpoint name="default"> <PreFlow> <Request/> <Response/> </PreFlow> <Flows> <Flow name="Flow-1"> <Condition>request.verb="GET"</Condition> <Request/> <Response/> </Flow> </Flows> <PostFlow> <Request/> <Response/> </PostFlow> ... </ProxyEndpoint>
Ten en cuenta que la condición hace referencia a la variable de flujo request.verb. Una variable de flujo recibe referencias con nombre que contienen información de estado asociada con una transacción de API que procesa Edge. Edge define muchas variables de estado a las que puedes hacer referencia.
Los servicios RESTful son colecciones de recursos de API. Un recurso de API es un fragmento de ruta de URI que identifica algunas entidades a las que los desarrolladores pueden acceder mediante una llamada a tu API. Por ejemplo, si el backend de tu servicio proporciona informes sobre el clima y el pronóstico, tu API podría definir dos flujos condicionales que se asignen a esos recursos de API: /reports
y /forecasts
. Cuando una llamada a la API incluye uno de esos recursos en la URL, la condición se evalúa como verdadera y se ejecuta la lógica adjunta al flujo condicional.
Los desarrolladores de apps acceden a tus recursos mediante solicitudes a una URL con el siguiente formato:
http://myAPIs.myCo.com/weather/reports
o:
http://myAPIs.myCo.com/weather/forecasts
En un proxy de API, puedes definir un flujo condicional que corresponda a un recurso específico:
<ProxyEndpoint name="default"> <PreFlow> <Request/> <Response/> </PreFlow> <Flows> <Flow name="Flow-1"> <Condition>(proxy.pathsuffix MatchesPath "/reports")</Condition> <Request/> <Response/> </Flow> <Flow name="Flow-2"> <Condition>(proxy.pathsuffix MatchesPath "/forecasts")</Condition> <Request/> <Response/> </Flow> </Flows> <PostFlow> <Request/> <Response/> </PostFlow> ... </ProxyEndpoint>
En este ejemplo, haces referencia a la variable de flujo proxy.pathsuffix
, que contiene la parte del sufijo de la URL que se usa para acceder al proxy de API. Luego, puedes adjuntar diferentes políticas al flujo condicional de cada recurso.
Agrega un flujo condicional
En este breve ejemplo, se configura un flujo que se ejecuta solo cuando el mensaje de solicitud es un HTTP GET.
Para agregar un flujo condicional, selecciona la pestaña Desarrollar en el compilador de proxy de API.
Haz clic en el ícono + en el extremo deseado.
El nuevo formulario de flujo condicional te permite nombrar el flujo y configurar una condición. En el siguiente ejemplo, agregas una condición simple que evalúa el HTTP del mensaje de solicitud para un verbo GET
(en contraposición a PUT
, POST
, etc.) en cualquier URI después de la ruta base.
(Obtén más información sobre cómo crear declaraciones condicionales en Variables y condiciones del flujo).
El nuevo flujo, llamado Flow-1, ahora aparece en el menú Navegador.
Ahora observa la configuración de XML para ProxyEndpoint. Selecciona Flow-1 en el menú Navegador.
Verás la siguiente configuración.
<PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> <Flows> <Flow name="Flow-1"> <Request/> <Response/> <Condition>(proxy.pathsuffix MatchesPath "/**") and (request.verb = "GET")</Condition> </Flow> </Flows> <PostFlow name="PostFlow"> <Request/> <Response/> </PostFlow>
Próximos pasos
En los siguientes temas, se proporcionan más detalles sobre cómo crear condiciones y usar variables: