Crear flujos compartidos reutilizables

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 usar en varios proxies de API e incluso en otros flujos compartidos. Aunque funciona como un proxy, un flujo compartido no tiene ningún endpoint. Solo se puede usar desde un proxy de API o un flujo compartido que esté en la misma organización que el propio flujo compartido.

Al capturar en un mismo lugar funciones que son útiles en varios sitios, un flujo compartido te ayuda a garantizar la coherencia, reducir el tiempo de desarrollo y gestionar el código más fácilmente.

En el siguiente vídeo se muestra cómo crear y depurar un flujo compartido en la interfaz de usuario de Apigee.

Puedes llamar a un flujo compartido mediante la política FlowCallout. Además, si adjuntas un flujo compartido a un enlace de flujo, puedes hacer que el flujo compartido se ejecute antes de una solicitud de proxy o de destino, o después de una respuesta de proxy o de destino.

Para consultar la política de FlowCallout, consulta la política FlowCallout. Para obtener más información sobre los enlaces de flujos, consulta el artículo Vincular un flujo compartido mediante un enlace de flujo.

Por ejemplo, imagina que tienes áreas de funcionalidad que se usan en varios lugares o que deben estandarizarse en todas las APIs de tu organización. Puedes tener un flujo compartido para cada categoría, como las siguientes:

  • Seguridad, con código de autorización mediante OAuth y verificación de claves de API, así como código de protección contra amenazas.
  • Registro para generar mensajes de error estándar.
  • Mediación: para transformar formatos de mensajes XML y JSON.

En la siguiente ilustración, dos proxies de API llaman (con una política FlowCallout) a un flujo compartido para autenticar las solicitudes de usuario entrantes. AuthSharedFlow se ha desplegado por separado en la organización antes que los proxies para que esté disponible y pueda admitir solicitudes de los proxies. Un equipo responsable de las políticas generales de la empresa puede desarrollar y gestionar un flujo compartido, que luego pueden usar los equipos de las líneas de negocio para crear aplicaciones más especializadas.

Diagrama de flujo que muestra la política POST /foodcarts a la política POST /menus a AuthSharedFlow.
          Texto destacado:
          a) Varios proxies de API consumen el flujo compartido mediante FlowCallouts.
          b) Las políticas FlowCallout hacen llamadas desde proxies de API a flujos compartidos.
          c) El paquete de flujo compartido contiene lógica reutilizable en forma de políticas y recursos.

Desarrollar un flujo compartido

Cuando desarrolles 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 generales para desarrollar un flujo compartido:

  1. Determina cuál debe ser el conjunto de funciones compartidas.

    Por ejemplo, puede que quieras combinar funciones de gestión del tráfico, como la supresión de picos de tráfico. De esta forma, puedes gestionar su configuración fuera del flujo de trabajo de los que implementan la lógica de la línea de negocio.

  2. Desarrolla un flujo compartido implementando políticas y recursos compatibles, igual que harías al desarrollar un proxy de API.

    Un flujo compartido es una secuencia de pasos condicionales. Por lo tanto, desarrollar una es como desarrollar un proxy de API. Puedes incluir políticas y recursos que quieras incluir en un proxy.

    Por ejemplo, como parte de la asistencia para la gestión del tráfico, puedes implementar una política Spike Arrest para permitir 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>

    Después, puedes adjuntar la política Spike Arrest como un paso a un flujo compartido para gestionar el tráfico. La política se ejecutaría en cualquier proxy de API que llamara al flujo compartido.

    <SharedFlow name="default">
        <Step>
            <Name>Spike-Arrest</Name>
        </Step>
    </SharedFlow>

    Para obtener información sobre cómo iniciar un flujo compartido en la consola de gestión, consulta Crear un flujo compartido en la interfaz de usuario de Apigee.

    Al igual que con los proxies de API, puedes importar un archivo ZIP que contenga los artefactos de origen de tu flujo compartido mediante la API Create shared flow. En el siguiente ejemplo se muestra cómo importar un flujo compartido con la API de Apigee:

    curl "https://apigee.googleapis.com/v1/organizations/$ORG/sharedflows?action=import&name=mySharedFlow" \
      -X POST \
      -F "file=@sharedflow.zip" \
      -H "Authorization: Bearer $TOKEN"

    Donde $TOKEN es tu token de acceso OAuth 2.0, tal como se describe en Obtener un token de acceso OAuth 2.0. Para obtener información sobre las opciones de curl que se usan en este ejemplo, consulta Usar curl. Para ver una descripción de las variables de entorno que puedes usar, consulta Definir variables de entorno para solicitudes a la API de Apigee.

  3. Implementa el flujo compartido en el entorno antes de implementar los proxies o flujos compartidos que lo consumirán. Los flujos compartidos se implementan de la misma forma que los proxies de API. Para obtener más información, consulta la descripción general de la implementación.

    Un flujo compartido debe estar en la misma organización y desplegarse en el mismo entorno que los proxies de API y otros flujos compartidos que lo consuman. Si implementas el flujo compartido antes que los proxies, podrás resolver la dependencia del proxy del flujo compartido en el momento de la implementación.

    Puedes desplegar 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, todos los despliegues de flujos compartidos correctos en Apigee son despliegues sin tiempo de inactividad.

  4. 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, llamas a un flujo compartido con una política FlowCallout. También puedes vincular el flujo compartido al proxy mediante un enlace de flujos.

    Para usar un flujo compartido, añade una política FlowCallout al proxy o al flujo compartido que lo vaya a usar. Al igual que una política Service Callout, con la que llamas a otro servicio, una FlowCallout llama al flujo compartido. El proxy de API de consumo debe desplegarse después del flujo compartido y en el mismo entorno que el flujo compartido. El flujo compartido debe estar implementado si quieres probar una llamada a él mediante la política FlowCallout.

    En el siguiente código, una política FlowCallout llama a un flujo compartido denominado traffic-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 Llamar a un flujo compartido desde un proxy de API o un flujo compartido.

  5. Despliega el proxy de API de consumo para empezar a usar el flujo compartido. Para obtener más información sobre la implementación en general, consulta el resumen de la implementación.
  6. Desarrolla de forma iterativa depurando, como harías con un proxy de API.

    Al igual que con un proxy de API, desarrollas un flujo compartido invocándolo y depurándolo de forma iterativa hasta que obtengas la lógica que quieras. En este caso, como el flujo compartido no se ejecuta por sí solo, invocas un endpoint proxy y depuras el proxy.

    Antes de seguir los pasos que se indican a continuación, asegúrate de que tanto el flujo compartido como el proxy de API que lo llama con una política FlowCallout estén en la misma organización y se hayan desplegado en el mismo entorno.

    Apigee en la consola de Cloud

    1. En la pestaña Depuración del proxy de la API, empieza a depurarlo.
    2. Envía una solicitud a un endpoint de proxy en el proxy de API. El flujo del endpoint debe incluir la política FlowCallout que llama al flujo compartido.
    3. En la pestaña Depuración, examina el flujo del proxy de la API al flujo compartido. Para obtener más información sobre la depuración, consulta Herramienta de depuración.

    Apigee Classic

    1. En la pestaña Trace (Rastreo) del proxy de API, empieza a rastrear el proxy de API.
    2. Envía una solicitud a un endpoint de proxy en el proxy de API. El flujo del endpoint debe incluir la política FlowCallout que llama al flujo compartido.
    3. En la pestaña Trace (Rastreo), 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 encerrados en un cuadro gris. Los iconos que representan las políticas de FlowCallout preceden a los flujos compartidos. Para obtener más información sobre el seguimiento, consulta la sección Herramienta de depuración.

      Mapa de transacciones.  Texto destacado:
            a) La política FlowCallout llama al flujo compartido.
            b) El flujo compartido incluye una política SpikeArrest y una política FlowCallout.
            La política FlowCallout llama a otro flujo compartido con una política VerifyAPIKey.

Crear un flujo compartido en la interfaz de usuario de Apigee

Cuando usas la API de Apigee para crear un flujo compartido, puedes hacerlo desde cero o importando fuentes de flujo como un archivo ZIP de paquete de flujo.

Acceda a la página Flujos compartidos, tal como se describe más abajo. En la página Flujos compartidos, puedes ver una lista de los flujos compartidos de la organización, así como editar o eliminar flujos de la lista.

Para crear un flujo compartido en la interfaz de usuario de Apigee, sigue estos pasos:

Apigee en la consola de Cloud

  1. En la Google Cloud consola, ve a la página Desarrollo de proxy > Flujos compartidos.

    Ir a Flujos compartidos

  2. Selecciona la organización que contenga el flujo compartido. Consulta Cambiar de organización.

    El flujo compartido estará disponible para cualquier proxy de API y flujo compartido desplegado en un entorno de esta organización. No estará disponible fuera de esta organización.

  3. Crear o subir un flujo compartido:
    • Haz clic en Crear para crear un flujo desde cero. Podrás configurar políticas y recursos como pasos del flujo.

      Se muestra el cuadro de diálogo Crear un flujo compartido.

      1. Introduce el nombre del flujo compartido.

        Este será el nombre que usarán los proxies de API y otros flujos compartidos para hacer referencia a este flujo compartido. El nombre debe ser descriptivo para los desarrolladores que consuman el flujo.

      2. Escribe una descripción para proporcionar más información sobre lo que hace el flujo.
      3. Si tu organización tiene habilitado Apigee Spaces, puedes asociar el flujo compartido a un espacio seleccionado de la lista de opciones disponibles. Para obtener más información, consulta el artículo Introducción a los espacios de Apigee.
      4. Haz clic en Crear.

        Se crea el flujo compartido.

      5. A continuación, puedes desarrollar las funciones de flujo compartido y desplegarlas en el entorno que quieras.
    • Haz clic en Subir paquete para crear un flujo compartido a partir de fuentes que ya tengas 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 de la consola de Apigee, tendrías un archivo zip con el paquete del flujo.

      Se muestra el cuadro de diálogo Crear un flujo compartido.

      1. Selecciona el archivo ZIP que contenga los artefactos que quieras incluir en el nuevo flujo.
      2. Haz clic en Abrir.
      3. Escribe un nombre para el flujo compartido importado.

        Este será el nombre que usarán los proxies de API y otros flujos compartidos para hacer referencia a este flujo compartido. El nombre debe ser descriptivo para los desarrolladores que consuman el flujo.

      4. Haz clic en Crear.

        El flujo compartido se crea a partir del paquete.

      5. A continuación, puedes desarrollar las funciones de flujo compartido y desplegarlas en el entorno que quieras.

Apigee Classic

  1. Inicia sesión en la interfaz de usuario de Apigee.
  2. Selecciona la organización que contenga el flujo compartido. Consulta Cambiar de organización.

    El flujo compartido estará disponible para cualquier proxy de API y flujo compartido desplegado en un entorno de esta organización. No estará disponible fuera de esta organización.

  3. En la barra de navegación de la izquierda, selecciona Desarrollo > Flujos compartidos.
  4. Crear o subir un flujo compartido:
    • Haz clic en Crear nuevo para crear un flujo desde cero. Podrás configurar políticas y recursos como pasos del flujo.

      Se muestra el cuadro de diálogo Crear un flujo compartido.

      1. Introduce el nombre del flujo compartido.

        Este será el nombre que usarán los proxies de API y otros flujos compartidos para hacer referencia a este flujo compartido. El nombre debe ser descriptivo para los desarrolladores que consuman el flujo.

      2. Escribe una descripción para proporcionar más información sobre lo que hace el flujo.
      3. Si tu organización tiene habilitado Apigee Spaces, puedes asociar el flujo compartido a un espacio seleccionado de la lista de opciones disponibles. Para obtener más información, consulta el artículo Introducción a los espacios de Apigee.
      4. Haz clic en Crear.

        Se crea el flujo compartido.

      5. A continuación, puedes desarrollar las funciones de flujo compartido y desplegarlas en el entorno que quieras.
    • Haz clic en Subir paquete para crear un flujo compartido a partir de fuentes que ya tengas subiendo un paquete de flujo.

      Un paquete de flujo compartido contiene los artefactos de origen de un flujo compartido. Por ejemplo, si descargara un flujo compartido desde la interfaz de usuario de Apigee, tendría un archivo zip con el paquete del flujo.

      Se muestra el cuadro de diálogo Crear un flujo compartido.

      1. Selecciona el archivo ZIP que contenga los artefactos que quieras incluir en el nuevo flujo.
      2. Haz clic en Abrir.
      3. Escribe un nombre para el flujo compartido importado.

        Este será el nombre que usarán los proxies de API y otros flujos compartidos para hacer referencia a este flujo compartido. El nombre debe ser descriptivo para los desarrolladores que consuman el flujo.

      4. Haz clic en Crear.

        El flujo compartido se crea a partir del paquete.

      5. A continuación, puedes desarrollar las funciones de flujo compartido y desplegarlas en el entorno que quieras.

Llamar 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.

Apigee en la consola de Cloud

  1. Realiza una de estas acciones:
    • En la Google Cloud consola, ve a la página Desarrollo de proxy > Proxies de API.

      Ir a proxies de API

    • En la Google Cloud consola, ve a la página Desarrollo de proxy > Flujos compartidos.

      Ir a Flujos compartidos

  2. Haz clic en la pestaña Desarrollar.
  3. En el panel de navegación, junto a Políticas, haga clic en .
  4. En la lista de políticas, en Extension (Extensión), selecciona FlowCallout (FlowCallout).
  5. Introduce el nombre visible y el nombre (identificador único) y, a continuación, selecciona el flujo compartido al que llamará esta política.
  6. Haz clic en Crear.
  7. Haga clic en junto a Guardar y, a continuación, en Guardar como nueva revisión.

Apigee Classic

  1. En la interfaz de usuario de Apigee, abre el proxy de API o el flujo compartido desde el que quieras llamar al flujo compartido.
  2. Haz clic en la pestaña Desarrollar.
  3. En el Navegador, junto a Políticas, haz clic en +.
  4. En la lista de políticas, en Extension (Extensión), haga clic en FlowCallout (Texto destacado de flujo).
  5. Introduce el nombre visible y el nombre (identificador único) y, a continuación, selecciona el flujo compartido al que llamará esta política.
  6. Haz clic en Añadir.

Consulta también

Crear cadenas entre proxies de APIs