Cumplimiento de solicitudes a la API


En este tutorial se describe un caso práctico sobre cómo puedes usar Application Integration para enrutar y obtener información de una solicitud de API de entrada.

Información general

En este tutorial, crearás una integración con un activador de API que recibe solicitudes de API para obtener información de los clientes. En función de la ubicación de la solicitud de la API, la integración recupera los detalles del cliente de una base de datos MySQL o de una base de datos Oracle.

Diagrama de cumplimiento de la API Diagrama de cumplimiento de la API

Objetivos

En este tutorial se explica cómo completar las siguientes tareas en tu integración:

  • Añade un activador de API.
  • Añade y configura tareas de conectores para conexiones de MySQL y Oracle.
  • Añade y configura tareas de asignación de datos para extraer y asignar la carga útil de la API.

Costes

En este tutorial, usarás los siguientes componentes facturables de Google Cloud:

Las instrucciones de este tutorial están diseñadas para que el uso de recursos no supere los límites del nivel Always Free de Google Cloud.

Cuando termines las tareas que se describen en este documento, puedes evitar que se te siga facturando eliminando los recursos que has creado. Para obtener más información, consulta la sección Limpiar.

Antes de empezar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Create a service account:

    1. Ensure that you have the Create Service Accounts IAM role (roles/iam.serviceAccountCreator). Learn how to grant roles.
    2. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    3. Select your project.
    4. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    5. Click Create and continue.
    6. Grant the following roles to the service account: Secret Manager Viewer (roles/secretmanager.viewer), Secret Manager Secret Accessor (roles/secretmanager).

      To grant a role, find the Select a role list, then select the role.

      To grant additional roles, click Add another role and add each additional role.

    7. Click Continue.
    8. Click Done to finish creating the service account.

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Create a service account:

    1. Ensure that you have the Create Service Accounts IAM role (roles/iam.serviceAccountCreator). Learn how to grant roles.
    2. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    3. Select your project.
    4. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    5. Click Create and continue.
    6. Grant the following roles to the service account: Secret Manager Viewer (roles/secretmanager.viewer), Secret Manager Secret Accessor (roles/secretmanager).

      To grant a role, find the Select a role list, then select the role.

      To grant additional roles, click Add another role and add each additional role.

    7. Click Continue.
    8. Click Done to finish creating the service account.

  8. Prepara tu entorno

    Configurar una base de datos MySQL

    Conéctate a tu servidor MySQL y crea una base de datos y una tabla para usarlas en este tutorial. En este tutorial se usa una base de datos que contiene una tabla llamada Customers con las siguientes filas:

      +-------------+---------------+--------------------+------------------+
      | customer_id | customer_name | customer_emailID   | customer_city    |
      +-------------+---------------+--------------------+------------------+
      |           1 | Alex          | test-01@test.com   | New York         |
      |           2 | Dana          | test-02@test.com   | Seattle          |
      +-------------+---------------+--------------------+------------------+
      

    Para obtener información sobre cómo crear y usar una base de datos MySQL, consulta la documentación de MySQL.

    Configurar una base de datos de Oracle

    Conéctate a tu base de datos de Oracle y crea una tabla para usarla en este tutorial. En este tutorial se usa una base de datos que contiene una tabla SQL llamada Customers con las siguientes filas:

      +-------------+---------------+--------------------+------------------+
      | customer_id | customer_name | customer_emailID   | customer_city    |
      +-------------+---------------+--------------------+------------------+
      |           1 | Amal          | test-01@test.com   | Delhi            |
      |           2 | Hao           | test-02@test.com   | Beijing          |
      +-------------+---------------+--------------------+------------------+
      

    Para obtener información sobre cómo crear y usar una base de datos de Oracle, consulta la documentación de Oracle.

    Configurar conexiones

    Para este tutorial, debe configurar las siguientes conexiones en Integration Connectors:

    Conexión a MySQL
    Configura una conexión de MySQL en Integration Connectors para obtener las entidades de las tablas de Customer. Para obtener información sobre cómo configurar un conector de MySQL, consulta Conector de MySQL.
    Conexión de base de datos Oracle
    Configura una conexión de base de datos de Oracle en Integration Connectors para obtener las entidades de tabla Customer. Para obtener información sobre cómo configurar un conector MySQL, consulta Conector de base de datos Oracle.

    Crear integración

    Para crear una integración, sigue estos pasos:

    1. En la consola de Google Cloud, ve a la página Application Integration (Integración de aplicaciones).

      Ir a Application Integration

    2. En el menú de navegación de la izquierda, haga clic en Integraciones para abrir la página Integraciones.
    3. Haga clic en Crear integración y proporcione los siguientes detalles en la página Crear integración:
      1. Nombre de la integración: introduce api_fulfilment.
      2. Descripción: introduce Demo integration created for tutorial.
      3. Región: seleccione us-central1 en la lista de regiones admitidas.
      4. Haga clic en Crear para abrir el editor de integraciones.

    Configurar un activador de integración

    Una vez que haya creado la integración correctamente, podrá añadir y configurar un activador de integración que invoque la integración para un evento identificado.

    En este tutorial, se usa un activador de API para invocar la integración cada vez que se envía una solicitud de API. Para añadir y configurar un activador de API en tu integración de api_fulfilment, haz lo siguiente:

    1. En el editor de integraciones, haz clic en Activadores para ver una lista de los activadores disponibles.
    2. Haz clic en el elemento Activador de API y colócalo en el editor de integraciones.

      Integración de aplicaciones rellena automáticamente la etiqueta, el nombre y el ID del activador. El ID de activador es un ID generado por la máquina con el formato api_trigger/TRIGGER_NAME y se usa en la solicitud a la API.

    3. No es necesario configurar nada más para este activador.

    Crear variables de integración

    Las variables de integración son similares a las variables que se usan en un lenguaje de programación. Los datos de las variables se pueden leer y escribir durante la ejecución de la integración. Para crear las variables necesarias para este tutorial, haga lo siguiente:

    1. En la barra de navegación del diseñador, haga clic en (Mostrar panel) para abrir el panel Variables.
    2. Haga clic en + Crear y cree las siguientes variables de integración:
      Nombre de variable Tipo de datos Tipo de variable
      location STRING Entrada de la integración
      customer_id STRING Entrada de la integración
      customer_record JSON Salida de la integración

    Recuperar datos de clientes de una base de datos MySQL

    Si la solicitud de la API de entrada procede de la ubicación US, haz lo siguiente para obtener los datos del cliente de la base de datos MySQL.

    Conectarse a la base de datos MySQL

    Sigue estos pasos para añadir y configurar una tarea Conectores que recupere los detalles de los clientes de la tabla Customers de MySQL:

    1. En el editor de integraciones, haz clic en Tareas para ver una lista de las tareas disponibles.
    2. Haz clic en el elemento Conectores y colócalo en el editor de integraciones.
    3. Selecciona el elemento de tarea Conectores en el diseñador para ver el panel de configuración de la tarea Conectores.
    4. Haz clic en y cambia el nombre de la etiqueta Conectores a Fetch MySQL Data.
    5. Haz clic en Configurar conector.
    6. En la página Editor de tareas de conectores, haz lo siguiente:
      1. En Seleccionar conexión, elige la región us-central1.
      2. Selecciona tu conexión de Salesforce en la lista de conexiones disponibles.
      3. Haz clic en Siguiente.
      4. En Type (Tipo), selecciona Entities (Entidades).
      5. En Definir entidades o acciones, selecciona Clientes en la lista de entidades disponibles y, a continuación, Get como Operación.
      6. Haz clic en Hecho para completar la configuración de la conexión y cerrar el panel.

    Asignar el ID de cliente al conector de MySQL

    La tarea Asignación de datos se usa para asignar el ID de cliente al conector MySQL. Para añadir y configurar la asignación de datos en tu integración, sigue estos pasos:

    1. En el editor de integraciones, haz clic en Tareas para ver una lista de las tareas disponibles.
    2. Haga clic en el elemento Asignación de datos y colóquelo en el editor de integraciones.
    3. Seleccione el elemento Asignación de datos en el diseñador para ver el panel de configuración de la tarea.
    4. Haz clic en y cambia el nombre de la tarea Asignación de datos a Map to MySQL.
    5. Haz clic en Abrir editor de asignación de datos.

      El editor de asignación de datos te permite asignar variables de entrada a las variables de salida deseadas mediante las funciones de transformación disponibles. La salida estará disponible como variable para cualquier otra tarea de integración o activador. Para obtener más información sobre las variables de asignación, consulta Añadir una asignación.

    6. Asigna la variable de activador customer_id a la variable de entrada del conector entityId(Fetch MySQL Data) generado automáticamente.

      Cuando hayas terminado de asignar los campos, cierra el panel. Los cambios se guardarán automáticamente.

    7. Añade una conexión de borde desde la tarea Asignar a MySQL al conector Obtener datos de MySQL.

    Recuperar los detalles de un cliente de MySQL

    Para obtener los detalles del cliente del conector de MySQL, haz lo siguiente:

    1. En el editor de integraciones, haz clic en Tareas para ver una lista de las tareas disponibles.
    2. Haga clic en el elemento Asignación de datos y colóquelo en el editor de integraciones.
    3. En el diseñador, haga clic en el elemento Asignación de datos para ver el panel de configuración de la tarea.
    4. Haz clic en y cambia el nombre de la tarea Asignación de datos a Get MySQL data.
    5. Haz clic en Abrir editor de asignación de datos.
    6. Asigna la variable de salida de MySQL (connectorOutputPayload (Fetch MySQL Data)) a la variable de integración customer_record.

      Cuando hayas terminado de asignar los campos, cierra el panel. Los cambios se guardarán automáticamente.

    7. Añade una conexión de borde desde el conector Obtener datos de MySQL a la tarea Obtener datos de MySQL.

    Recuperar datos de clientes de una base de datos de Oracle

    Si la solicitud de la API de entrada procede de la ubicación APAC, haz lo siguiente para recuperar los datos de los clientes de la base de datos de Oracle.

    Conectarse a la base de datos de Oracle

    Sigue estos pasos para añadir y configurar una tarea Conectores que recupere los detalles de los clientes de la tabla Clientes de Oracle:

    1. En el editor de integraciones, haz clic en Tareas para ver una lista de las tareas disponibles.
    2. Haz clic en el elemento Conectores y colócalo en el editor de integraciones.
    3. Selecciona el elemento de tarea Conectores en el diseñador para ver el panel de configuración de la tarea Conectores.
    4. Haz clic en y cambia el nombre de la etiqueta Conectores a Fetch Oracle Data.
    5. Haz clic en Configurar conector.
    6. En la página Editor de tareas de conectores, haz lo siguiente:
      1. En Seleccionar conexión, elige la región us-central1.
      2. Selecciona tu conexión de Salesforce en la lista de conexiones disponibles.
      3. Haz clic en Siguiente.
      4. En Type (Tipo), selecciona Entities (Entidades).
      5. En Definir entidades o acciones, selecciona Clientes en la lista de entidades disponibles y, a continuación, Get como Operación.
      6. Haz clic en Hecho para completar la configuración de la conexión y cerrar el panel.

    Asignar el ID de cliente al conector de Oracle

    Para añadir y configurar la asignación de datos en tu integración, sigue estos pasos:

    1. En el editor de integraciones, haz clic en Tareas para ver una lista de las tareas disponibles.
    2. Haga clic en el elemento Asignación de datos y colóquelo en el editor de integraciones.
    3. Seleccione el elemento Asignación de datos en el diseñador para ver el panel de configuración de la tarea.
    4. Haz clic en y cambia el nombre de la tarea Asignación de datos a Map to Oracle.
    5. Haz clic en Abrir editor de asignación de datos.
    6. Asigna la variable de activador customer_id a la variable de entrada del conector entityId(Fetch Oracle Data) generado automáticamente.

      Cuando hayas terminado de asignar los campos, cierra el panel. Los cambios se guardarán automáticamente.

    7. Añade una conexión de borde desde la tarea Asignar a Oracle al conector Obtener datos de Oracle.

    Recuperar los detalles de un cliente de Oracle

    Para obtener los detalles del cliente del conector de Oracle, haz lo siguiente:

    1. En el editor de integraciones, haz clic en Tareas para ver una lista de las tareas disponibles.
    2. Haga clic en el elemento Asignación de datos y colóquelo en el editor de integraciones.
    3. En el diseñador, haga clic en el elemento Asignación de datos para ver el panel de configuración de la tarea.
    4. Haz clic en y cambia el nombre de la tarea Asignación de datos a Get Oracle data.
    5. Haz clic en Abrir editor de asignación de datos.
    6. Asigna la variable de salida de Oracle (connectorOutputPayload (Fetch Oracle Data)) a la variable de integración customer_record.

      Cuando hayas terminado de asignar los campos, cierra el panel. Los cambios se guardarán automáticamente.

    7. Añade una conexión de borde desde el conector Obtener datos de Oracle a la tarea Obtener datos de Oracle.

    Añadir condición de borde

    Una condición límite te permite especificar las condiciones que se deben cumplir para que el control de una integración pase a la tarea conectada por el límite. Ahora que has añadido y configurado las tareas necesarias, puedes añadir una condición límite para definir el flujo de la integración.

    La siguiente condición de borde controla el flujo de la integración en función de la variable de integración location:

    1. Añade una conexión de borde del activador API a la tarea Asignar a MySQL con la siguiente condición de borde:
        $location$ = "US"
    2. Añade otra conexión de borde del activador API a la tarea Asignar a Oracle con la siguiente condición de borde:
        $location$ = "APAC"

    Flujo de integración de ejemplo

    En la siguiente imagen se muestra un diseño de ejemplo de la integración creada con este tutorial.

    Imagen de muestra que muestra el flujo de integración Imagen de muestra que muestra el flujo de integración

    Publicar integración

    Para publicar la integración, haga clic en Publicar en la barra de herramientas del editor de integraciones.

    Una vez que hayas publicado tu integración correctamente, podrás ver e inspeccionar los registros de ejecución de la integración publicada. Para ver los registros, haz clic en Imagen que muestra el icono de los registros de ejecuciónVer registros de ejecución de esta integración. Se abrirá la página Registros de ejecución.

    Probar la integración

    Probar la integración desde el editor de integraciones

    Para probar la integración desde el editor de integraciones, sigue estos pasos:

    1. En la barra de herramientas del editor de integración, haz clic en Probar.

      Aparecerá el panel Integración de prueba.

    2. Se te pedirá que introduzcas los valores de prueba de las variables de entrada de la integración. Para esta prueba, haz lo siguiente:
      • customer_id: introduce 1.
      • Ubicación: escribe APAC.
    3. Haz clic en Test Integration (Probar integración).

    La integración se ejecuta correctamente y se muestra el siguiente valor del cliente:

    { 
      "CUSTOMER_ID": 1,
      "CUSTOMER_NAME": "Amal"
      "CUSTOMER_EMAILID": "test-01@test.com "
      "CUSTOMER_CITY": "Delhi"
    }
    

    Para obtener más información sobre las pruebas, consulta Probar y publicar integraciones.

    Hacer pruebas con una llamada a la API REST

    Ahora que la integración se ha publicado y está en funcionamiento, puedes invocarla mediante la siguiente llamada REST POST:

    URL:
    https://integrations.googleapis.com/v1/projects/project-name/locations/-/integrations/api_fulfilment:execute 
    Cuerpo de la solicitud:
    {"trigger_id":"api_trigger/api_fulfilment_API_1"}

    Ejemplo: Hacer una solicitud a la API con entradas personalizadas

    curl -v -X POST -H "Content-Type: application/json" 'https://integrations.googleapis.com/v1/projects/connectors-ip-test/locations/us-central1/integrations/api-fulfillment-integration:execute' -H "Authorization: Bearer $(gcloud auth AUTH_PROFILE)" -d  '{ "triggerId": "api_trigger/api-fulfillment-integration_API_1", "inputParameters": { "customer_id": {"string_value": 1}, "location" : {"string_value" : "US"}} }'
    

    La API devuelve la respuesta de ejecución de la integración, que contiene el siguiente JSON:

      { 
        "CUSTOMER_ID": 2,
        "CUSTOMER_NAME": "Dana"
        "CUSTOMER_EMAILID": "test-02@test.com "
        "CUSTOMER_CITY": "Seattle"
      }
      

    Limpieza

    Para evitar que se apliquen cargos en tu cuenta de Google Cloud por los recursos utilizados en este tutorial, anula la publicación de la integración y elimina las conexiones creadas en Integration Connectors.

    • Para dejar de publicar esta integración, haz clic en Dejar de publicar en la barra de herramientas del editor de la integración. Consulta Eliminar integraciones para obtener más información.
    • Para obtener información sobre cómo eliminar una conexión, consulta Gestionar conectores.