Esta página se aplica a Apigee y Apigee Hybrid.
Consulta la documentación de Apigee Edge.
Combina políticas y recursos en un flujo compartido que puedes consumir desde varios proxies de API, y también desde otros flujos de uso compartido. Aunque es como un proxy, un flujo compartido no tiene extremo. Solo se puede usar desde un proxy de API o un flujo compartido que se encuentre en la misma organización que el flujo compartido en sí.
Al capturar funciones de un solo lugar que son útiles en varios lugares, el flujo compartido te ayuda a garantizar la coherencia, acortar el tiempo de desarrollo y administrar más fácilmente el código.
En el siguiente video, se muestra cómo crear y depurar un flujo compartido en la IU de Apigee.
Puedes llamar a un flujo compartido mediante la política de FlowCallout. Además, si adjuntas un flujo compartido a un hook de flujo, puedes hacer que el flujo compartido se ejecute antes de una solicitud de proxy o de destino, o luego de una respuesta de proxy o de destino.
Para obtener información de referencia sobre la política FlowCallout
, consulta Política FlowCallout. Para obtener más información sobre los hooks de flujo, consulta Adjunta un flujo compartido con un hook de flujo.
Por ejemplo, imagina que tienes áreas de funcionalidad que se usan en varios lugares o que se deben estandarizar entre las API de tu organización. Puedes tener un flujo compartido para cada categoría, incluido lo siguiente:
- Seguridad, con código de autorización mediante verificación de clave de API y OAuth, además de código de protección contra amenazas.
- Registro para generar mensajes de error estándar.
- Mediación, para transformar entre formatos de mensajes XML y JSON.
En la siguiente ilustración, dos proxies de API salen (con una política de FlowCallout
) en un flujo compartido para autenticar solicitudes de usuario entrantes. AuthSharedFlow
se implementó por separado en la organización antes de los proxies de modo que estén disponibles para admitir solicitudes de los proxies. Un equipo responsable de políticas generales de la empresa puede desarrollar y administrar un flujo compartido para, luego, consumirlo en los proxies de los equipos de línea de negocio que compilan apps más especializadas.
Desarrolla un flujo compartido
Cuando desarrollas un flujo compartido, siempre debes probarlo con llamadas enviadas a un proxy de API. En otras palabras, no puedes enviar solicitudes directamente a un flujo compartido como lo harías con un proxy de API. En su lugar, envías solicitudes a un proxy de API que, a su vez, llama al flujo compartido.
Estos son los pasos de alto nivel para desarrollar un flujo compartido:
- Descubre cuál debería ser el conjunto compartido de funciones.
Por ejemplo, es posible que desees combinar funciones de administración del tráfico, como suprimir los aumentos de tráfico. De esa manera, puedes administrar su configuración fuera del flujo de trabajo de quienes implementan la lógica de línea de negocio.
-
Desarrolla un flujo compartido mediante la implementación de políticas y recursos de asistencia, tal como lo harías al desarrollar un proxy de API.
Un flujo compartido es una secuencia de pasos condicionales. Entonces, el desarrollo de uno es como desarrollar un proxy de API. Puedes incluir políticas y recursos que puedas incluir en un proxy.
Por ejemplo, como parte de tu asistencia para la administración del tráfico, puedes implementar una política de protección contra aumentos de tráfico que permita solo 30 solicitudes por segundo, como en el siguiente ejemplo:
<SpikeArrest async="false" continueOnError="false" enabled="true" name="Spike-Arrest"> <DisplayName>Spike Arrest</DisplayName> <Properties/> <Identifier ref="request.header.some-header-name"/> <MessageWeight ref="request.header.weight"/> <Rate>30ps</Rate> </SpikeArrest>
Luego, en un flujo compartido para la administración del tráfico, puedes adjuntar la política de Spike Arrest como un paso. La política se ejecutará en cualquier proxy de API que llame al flujo compartido.
<SharedFlow name="default"> <Step> <Name>Spike-Arrest</Name> </Step> </SharedFlow>
Para obtener información sobre cómo comenzar un flujo compartido en la consola de administración, consulta Crea un flujo compartido en la IU de Apigee.
Al igual que con los proxies de API, puedes importar un archivo ZIP que contenga tus artefactos de origen del flujo compartido mediante la API de Create shared flow. A continuación, se muestra cómo importar un flujo compartido con la API de Apigee:
curl "https://apigee.googleapis.com/v1/organizations/$ORG/sharedflows?action=import&sharedFlowID=mySharedFlow" \ -X POST \ -F "file=@sharedflow.zip" \ -H "Authorization: Bearer $TOKEN"
En el ejemplo anterior,
$TOKEN
está configurado como tu token de acceso de OAuth 2.0, como se describe en Obtén un token de acceso de OAuth 2.0. Para obtener información sobre las opciones decurl
que se usan en este ejemplo, consulta Usa curl. Para obtener una descripción de las variables de entorno utilizadas, consulta Configura variables de entorno para solicitudes a la API de Apigee. -
Implementa el flujo compartido en el entorno antes de implementar proxies o flujos compartidos que lo consumirán. Implementa un flujo compartido de la misma manera en que implementas un proxy de API. (Para obtener más información, consulta Descripción general de la implementación).
Un flujo compartido debe estar en la misma organización y, luego, implementarse en el mismo entorno que los proxies de API y otros flujos compartidos que lo consumen. La implementación del flujo compartido antes de los proxies hace posible la resolución de la dependencia del proxy en el flujo compartido, en el momento de la implementación.
Puedes implementar un flujo compartido con una llamada a la API de Apigee como la siguiente:
curl https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/sharedflows/$SHAREDFLOW/revisions/$REV/deployments \ -X POST \ -H "Authorization: Bearer $TOKEN"
Al igual que los proxies de API, las implementaciones de flujos compartidos exitosas en Apigee son implementaciones sin tiempo de inactividad.
-
Desarrolla el proxy de API de consumo para que pueda llamar al flujo compartido como parte de su propio flujo.
Desde un proxy de API, llama a un flujo compartido con una política de FlowCallout. (También puedes adjuntar el flujo compartido al proxy mediante un hook de flujo).
Para consumir un flujo compartido, agrega una política
FlowCallout
al proxy o flujo compartido que lo consumirá. Al igual que una política de texto destacado del servicio, en la que llamas a otro servicio, unaFlowCallout
llama al flujo compartido. El proxy de API de consumo se debe implementar después del flujo compartido y en el mismo entorno que el flujo compartido. El flujo compartido deberá estar implementado cuando quieras probar una llamada mediante la políticaFlowCallout
.En el siguiente código, una política
FlowCallout
llama a un flujo compartido llamadotraffic-management-shared
.<FlowCallout async="false" continueOnError="false" enabled="true" name="Traffic-Management-Flow-Callout"> <DisplayName>Traffic Management FlowCallout</DisplayName> <Properties/> <SharedFlowBundle>traffic-management-shared</SharedFlowBundle> </FlowCallout>
Para obtener más información, consulta Llama a un flujo compartido desde un proxy de API o un flujo compartido
- Implementa el proxy de API de consumo para comenzar a usar el flujo compartido. (Para obtener más información sobre la implementación en general, consulta la Descripción general de la implementación).
-
Realiza un desarrollo iterativo mediante el seguimiento, como lo harías con un proxy de API.
Al igual que con un proxy de API, debes desarrollar un flujo compartido mediante la invocación iterativa y el seguimiento hasta que tengas la lógica como desees. En este caso, debido a que el flujo compartido no se ejecuta solo, debes invocar un extremo de proxy y depurarlo.
A continuación, se indican los pasos que debes seguir:
- Asegúrate de que tanto el flujo compartido como el proxy de API que lo llama con una política de
FlowCallout
estén en la misma organización y se implementen en el mismo entorno. - En la pestaña Seguimiento del proxy de API, comience a realizar el seguimiento del proxy de API.
- Envía una solicitud a un extremo proxy en el proxy de API. El flujo desde el extremo debe incluir la política de
FlowCallout
que llama al flujo compartido. - En la pestaña Seguimiento, examina el flujo del proxy de API al flujo compartido.
Ten en cuenta que, en el seguimiento, el flujo compartido se representa como un conjunto de pasos o políticas en un cuadro gris. Íconos que representan políticas de
FlowCallout
antes de los flujos compartidos. (Para obtener más información sobre el seguimiento, consulta Herramienta de depuración).
- Asegúrate de que tanto el flujo compartido como el proxy de API que lo llama con una política de
Crea un flujo compartido en la IU de Apigee
Cuando usas la API de Apigee para crear un flujo compartido, puedes crear uno desde cero o importar las fuentes de flujo existentes como un archivo ZIP de paquete de flujo.
Accede a la página Flujos compartidos, como se describe a continuación. En la página Flujos compartidos, puedes ver una lista de flujos compartidos en la organización y editar o borrar flujos de la lista.
Para crear un flujo compartido en la IU de Apigee, sigue estos pasos:
- Accede a la IU de Apigee.
-
Selecciona la organización que contiene tu flujo compartido. Consulta Cambia entre tus organizaciones.
El flujo compartido estará disponible para cualquier proxy de API y flujos compartidos implementados en un entorno de esta organización. No estará disponible fuera de esta organización.
- Selecciona Desarrollar > Flujos compartidos en la barra de navegación izquierda.
-
Crea o sube un flujo compartido:
-
Haz clic en Crear nuevo para crear un flujo nuevo desde cero. Podrás configurar políticas y recursos como pasos en el flujo.
Aparecerá el diálogo Crear un flujo compartido.
-
Ingresa el nombre del flujo compartido.
Este será el nombre que los proxies de API y otros flujos compartidos usarán para hacer referencia a este flujo compartido. El nombre debe ser descriptivo para los desarrolladores que consumen el flujo.
- Ingresa una descripción para proporcionar más información sobre lo que hace el flujo.
-
Haz clic en Crear.
Se crea el flujo compartido.
- A continuación, puedes desarrollar las características de flujo compartido y, luego, implementarlas en el entorno deseado.
-
Ingresa el nombre del flujo compartido.
- Haz clic en Subir paquete para crear un flujo compartido a partir de fuentes existentes subiendo un paquete de flujo.
Un paquete de flujo compartido contiene los artefactos de origen de un flujo compartido. Por ejemplo, si descargaras un flujo compartido desde la IU de Apigee, tendrías un archivo ZIP con el paquete de flujo.
Aparecerá el diálogo Crear un flujo compartido.
- Selecciona el archivo ZIP que contiene los artefactos que deseas que estén en el flujo nuevo.
- Haz clic en Abrir.
-
Ingresa un nombre para el flujo compartido importado.
Este será el nombre que los proxies de API y otros flujos compartidos usan para hacer referencia a este flujo compartido. El nombre debe ser descriptivo para los desarrolladores que consumen el flujo.
-
Haz clic en Crear.
El flujo compartido se crea a partir del paquete.
- A continuación, puedes desarrollar las características de flujo compartido y, luego, implementarlas en el entorno deseado.
-
Haz clic en Crear nuevo para crear un flujo nuevo desde cero. Podrás configurar políticas y recursos como pasos en el flujo.
Llama a un flujo compartido desde un proxy de API o un flujo compartido
Puedes llamar a un flujo compartido desde un proxy o desde otro flujo compartido mediante la política FlowCallout.
- En la IU de Apigee, abre el proxy de API o el flujo compartido desde el que deseas llamar al flujo compartido.
- Haz clic en la pestaña Desarrollar:
- En el navegador, junto a Políticas, haz clic en +.
- En la lista de políticas, en Extensión, haga clic en FlowCallout.
- Ingresa el nombre visible y el nombre (identificador único) y, luego, selecciona el flujo compartido al que llamará esta política.
- Haz clic en Agregar.
- Agrega la nueva política de
FlowCallout
al proxy en el que deseas realizar la llamada.