Configura notificaciones mediante webhooks

Estás viendo la documentación de Apigee Edge.
Ir a la documentación de Apigee X.
info

¿Qué es un webhook?

Un webhook define un controlador de devolución de llamada HTTP que se activa mediante un evento. Puedes crear webhooks y configurarlos para controlar las notificaciones de eventos, como alternativa al uso de las plantillas de notificaciones de monetización, como se describe en Configura notificaciones con plantillas de notificaciones.

Para configurar notificaciones con webhooks, completa los siguientes pasos con la IU de Edge Management o la API de Management y Monetization:

  1. Agrega webhooks que definan los controladores de devolución de llamada para los eventos de notificación con la IU o API.
  2. Configura el controlador de devolución de llamada.
  3. Configura la notificación para un plan de tarifas ajustable con la IU o la API.

Administra webhooks

Agrega y administra webhooks que definan los controladores de devolución de llamada para los eventos de notificación con la IU o API.

Administra webhooks con la IU

Agrega y administra webhooks que definan los controladores de devolución de llamada para los eventos de notificación con la IU, como se describe en las siguientes secciones.

Explora la página Webhooks

Accede a la página Webhooks, como se describe a continuación.

Edge

Para acceder a la página Webhooks con la IU de Edge, haz lo siguiente:

  1. Accede a apigee.com/edge.
  2. Selecciona Publicar > Monetización > Webhooks en la barra de navegación izquierda.

Se mostrará la página Webhooks.

Como se destaca en la figura, la página Webhooks te permite hacer lo siguiente:

Classic Edge (nube privada)

Para acceder a la página Webhooks con la IU de Classic Edge, haz lo siguiente:

  1. Accede a http://ms-ip:9000, donde ms-ip es la dirección IP o el nombre de DNS del nodo del servidor de administración.
  2. Selecciona Administrador > Webhooks.

Se mostrará la página Webhooks.

La página Webhooks te permite hacer lo siguiente:

Agrega un webhook con la IU

Para agregar un webhook con la IU, haz lo siguiente:

  1. Accede a la página Webhooks.
  2. Haz clic en + Webhook.
  3. Ingresa la siguiente información (todos los campos son obligatorios).
    Campo Descripción
    Nombre Nombre del webhook
    URL URL del controlador de devolución de llamada que se llamará cuando se active la notificación del evento (consulta Configura el controlador de devolución de llamada)
  4. Haz clic en Guardar.

El webhook se agrega a la lista y se habilita de forma predeterminada.

Edita un webhook con la IU

Para editar un webhook con la IU, haz lo siguiente:

  1. Accede a la página Webhooks.
  2. Coloca el cursor sobre el webhook que deseas editar y haz clic en en el menú de acciones.
  3. Edita los campos del webhook según sea necesario.
  4. Haz clic en Actualizar webhook.

Habilita o inhabilita un webhook con la IU

Para habilitar o inhabilitar un webhook con la IU, haz lo siguiente:

  1. Accede a la página Webhooks.
  2. Coloca el cursor sobre el webhook y activa o desactiva el interruptor de estado para habilitarlo o inhabilitarlo.

Borra un webhook con la IU

Para borrar un webhook con la IU, haz lo siguiente:

  1. Accede a la página Webhooks.
  2. Coloca el cursor sobre el webhook que deseas borrar y haz clic en .

El webhook se borra y se quita de la lista.

Administra webhooks con la API

Agrega y administra webhooks con la API como se describe en las siguientes secciones.

Visualiza todos los webhooks con la API

Para ver todos los webhooks, envía una solicitud GET a /mint/organizations/{org_name}/webhooks. Por ejemplo:

curl -X GET "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks" \
  -H "Content-Type: application/json " \
  -u email:password

A continuación, se proporciona un ejemplo de la respuesta que se muestra:

{
  "totalRecords": 2,
  "webhooks": [
    {
      "created": 1460162656342,
      "enabled": false,
      "id": "21844a37-d26d-476c-93ed-38f3a4b24691",
      "name": "webhook1",
      "postUrl": "http://mycompany.com/callbackhandler1",
      "updated": 1460162656342,
      "updatedBy": "joe@example.com"
    },
        {
      "created": 1460138724352,
      "createdBy": "joe@example.com",
      "enabled": true,
      "id": "a39ca777-1861-49cf-a397-c9e92ab3c09f",
      "name": "webhook2",
      "postUrl": "http://mycompany.com/callbackhandler2",
      "updated": 1460138724352,
      "updatedBy": "joe@example.com"
    }

  ]
}

Visualiza un webhook con la API

Para ver un solo webhook, envía una solicitud GET a /mint/organizations/{org_name}/webhooks/{webhook_id}.

Por ejemplo:

curl -X GET "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks/21844a37-d26d-476c-93ed-38f3a4b24691" \
  -H "Content-Type: application/json " \
  -u email:password

A continuación, se proporciona un ejemplo de la respuesta.

{
   "created": 1460162656342,
   "enabled": false,
   "id": "21844a37-d26d-476c-93ed-38f3a4b24691",
   "name": "webhook1",
   "postUrl": "http://mycompany.com/callbackhandler1",
   "updated": 1460162656342,
   "updatedBy": "joe@example.com"
 }

Agrega un webhook con la API

Para agregar un webhook, envía una solicitud POST a /mint/organizations/{org_name}/webhooks. Debes pasar el nombre del webhook y la URL del controlador de devolución de llamada que se llamará cuando se active la notificación del evento.

Por ejemplo, lo siguiente crea un webhook llamado webhook3 y asigna callbackhandler3 al webhook:

curl -X POST "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks"
  -H "Content-Type: application/json "
  -d '{
    "name": "webhook3",
    "postURL": "http://mycompany.com/callbackhandler3"
    }' \
    -u email:password

A continuación, se proporciona un ejemplo de la respuesta.

{
  "created": 1460385534555,
  "createdBy": "joe@example.com",
  "enabled": false,
  "id": "0a07eb1f-f485-4539-8beb-01be449699b3",
  "name": "webhook3",
  "orgId": "myorg",
  "postUrl": "http://mycompany.com/callbackhandler3",
  "updated": 1460385534555,
  "updatedBy": "joe@example.com"
}

Edita un webhook con la API

Para editar un webhook, envía una solicitud PUT a /mint/organizations/{org_name}/webhooks/{webhook_id}. Pasa las actualizaciones en el cuerpo de la solicitud.

Por ejemplo, lo siguiente actualiza el controlador de devolución de llamada asociado con webhook1:

curl -X PUT "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks/0a07eb1f-f485-4539-8beb-01be449699b3" \
  -H "Content-Type: application/json " \
  -d '{
    "postURL": "http://mycompany.com/callbackhandler4"
  }' \
  -u email:password

A continuación, se proporciona un ejemplo de la respuesta.

{
  "created": 1460385534555,
  "enabled": false,
  "id": "0a07eb1f-f485-4539-8beb-01be449699b3",
  "name": "webhook3",
  "orgId": "myorg",
  "postUrl": "http://mycompany.com/callbackhandler4",
  "updated": 1460385534555,
  "updatedBy": "joe@example.com"
}

Habilita o inhabilita un webhook con la API

Para habilitar o inhabilitar un webhook, envía una solicitud POST a /mint/organizations/{org_name}/webhooks/{webhook_id}, como lo hiciste cuando actualizaste un webhook, y establece el atributo habilitado en el cuerpo de la solicitud como verdadero o falso, respectivamente. Si inhabilitas el webhook, no se activará cuando ocurra un evento.

Por ejemplo, lo siguiente habilita webhook3:

curl -X POST "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks/0a07eb1f-f485-4539-8beb-01be449699b3" \
  -H "Content-Type: application/json " \
  -d '{
    "enabled": "true"
  }' \
  -u email:password

A continuación, se proporciona un ejemplo de la respuesta.

{
  "created": 1460385534555,
  "enabled": true,
  "id": "0a07eb1f-f485-4539-8beb-01be449699b3",
  "name": "webhook3",
  "orgId": "myorg",
  "postUrl": "http://mycompany.com/callbackhandler4",
  "updated": 1460385534555,
  "updatedBy": "joe@example.com"
}

Borra un webhook con la API

Para borrar un webhook, envía una solicitud DELETE a /mint/organizations/{org_name}/webhooks/{webhook_id}.

Para especificar si se debe forzar o no el borrado del webhook si hay procesos en curso, establece el forceDelete parámetro de búsqueda como true o false. El parámetro de búsqueda forceDelete está habilitado (true) de forma predeterminada.

Por ejemplo, lo siguiente borra webhook3:

curl -X DELETE "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks/21844a37-d26d-476c-93ed-38f3a4b24691" \
  -H "Content-Type: application/json " \
  -u email:password

Configura el controlador de devolución de llamada

A continuación, se muestra el formato de la solicitud JSON que se envía al controlador de devolución de llamada definido por un webhook cuando se activa una notificación de evento. Debes asegurarte de que el controlador de devolución de llamada procese la solicitud de forma adecuada.

{
        "orgName": "{org_id}",
        "developerEmail": "{dev_email}",
        "developerFirstName": "{first_name}",
        "developerLastName": "{last_name}",
        "companyName": "{company_name}",
        "applicationName": "{app_name}",
        "packageName": "{api_package_name}",
        "packageId": "{api_package_id}",
        "ratePlanId": "{rateplan_id}",
        "ratePlanName": "{rateplan_name}",
        "ratePlanType": "{rateplan_type}",
        "developerRatePlanQuotaTarget": {quota_target},
        "quotaPercentUsed": {percentage_quota_used},
        "ratePlanStartDate": {rateplan_startdate}, 
        "ratePlanEndDate": {rateplan_enddate},
        "nextBillingCycleStartDate": {next_billing_cycle_startdate},
        "products": ["{api_product_name}","{api_product_name}"],
        "developerCustomAttributes": [],
        "triggerTime": {trigger_time},
        "triggerReason": "{trigger_reason}",
        "developerQuotaResetDate": "{devquota_resetdate}"
}

Configura notificaciones para un plan de tarifas ajustable

Configura notificaciones con webhooks para un plan de tarifas ajustable con la IU o la API.

Configura notificaciones para un plan de tarifas ajustable con la IU

Configura notificaciones con webhooks para un plan de tarifas ajustable con la IU, como se describe a continuación.

Accede al diálogo Notificaciones para un plan de tarifas ajustable

Accede al diálogo Notificaciones para un plan de tarifas ajustable, como se describe a continuación.

Edge

Para acceder al diálogo de notificaciones con la IU de Edge, haz lo siguiente:

  1. Crea y publica un plan de tarifas de notificaciones ajustable, como se describe en Especifica los detalles del plan de notificaciones ajustables.
  2. Accede a la página Planes de tarifas seleccionando Publicar > Monetización > Planes de tarifas en la barra de navegación izquierda.
  3. Coloca el cursor sobre el plan de tarifas de notificaciones ajustables publicado para mostrar las acciones.
  4. Haz clic en \+Notificar.

    Se mostrará el diálogo Notificaciones.

    Nota: El plan de tarifas debe publicarse para que se muestre la acción +Notificar.

Classic Edge (nube privada)

Para acceder a la página Notificaciones, haz lo siguiente:

  1. Crea un plan de tarifas de notificaciones ajustable, como se describe en Especifica los detalles del plan de notificaciones ajustables.
  2. Selecciona Publicar > Paquetes para ver los planes de tarifas.
  3. Haz clic en \+Notificar en la columna Acciones del plan de tarifas.

    Se mostrará el diálogo Notificaciones.

Agrega notificaciones para un plan de tarifas ajustable con la IU

Para agregar notificaciones para un plan de tarifas ajustable con la IU, haz lo siguiente:

  1. Accede al diálogo Notificaciones.
  2. Establece la condición de notificación en Intervalos de notificación especificando un porcentaje de la cantidad objetivo de transacciones en el que deseas que se active una notificación. En particular:
    • Para establecer un porcentaje exacto, ingresa el porcentaje en el campo En/Desde % y deja el campo Hasta % en blanco.
    • Para establecer un rango de porcentaje, ingresa el porcentaje inicial y final en los En/Desde % y Hasta % campos, respectivamente, y un incremento valor en el campo Paso %. De forma predeterminada, las notificaciones se envían en incrementos del 10% dentro del rango especificado.

    El campo Notify At se actualiza para reflejar cada porcentaje de la cantidad objetivo de transacciones que activará un evento.

  3. Para establecer condiciones de notificación adicionales, haz clic en +Agregar y repite el paso 4.
  4. Establece la acción de notificación en Webhooks seleccionando uno o más webhooks para administrar el control de devolución de llamada cuando se activan las notificaciones.
  5. Haz clic en Crear notificación.

Edita notificaciones para un plan de tarifas ajustable con la IU

Para editar notificaciones para un plan de tarifas ajustable con la IU, haz lo siguiente:

  1. Accede al diálogo Notificaciones.
  2. Haz clic en \+Notificar en la columna Acciones del plan de tarifas.
  3. Haz clic en Editar.
  4. Modifica los valores según sea necesario.
  5. Haz clic en Guardar notificación.

Borra notificaciones para un plan de tarifas ajustable con la IU

Para borrar una condición y una acción de notificación, haz lo siguiente:

  1. Accede al diálogo Notificaciones.
  2. Haz clic en \+Notificar en la columna Acciones del plan de tarifas.
  3. Haz clic en Borrar notificación.

Configura notificaciones para un plan de tarifas ajustable con la API

Para configurar una notificación para un plan de tarifas ajustable con la API, usa el procedimiento que se describe en Administra condiciones y acciones de notificación con la API y usa los atributos que se describen en esta sección.

Para configurar la condición de notificación (notificationCondition), usa los siguientes valores de atributo. Para obtener más información, consulta Propiedades de configuración para condiciones de notificación.

Atributo Valor
RATEPLAN Es el ID del plan de tarifas de notificaciones ajustable.
PUBLISHED TRUE para indicar que se debe publicar el plan de tarifas de notificaciones ajustable.
UsageTarget Es el porcentaje de la cantidad objetivo de transacciones en el que deseas que se active una notificación.

Este atributo te permite notificar a los desarrolladores cuando se acercan a la cantidad objetivo de transacciones o la alcanzaron para un plan de tarifas de notificaciones ajustable que compraron. Por ejemplo, si un desarrollador compró un plan de tarifas de notificaciones ajustable y la cantidad objetivo de transacciones para el desarrollador se estableció en 1,000, puedes notificarle cuando alcance 800 transacciones (80% de la cantidad objetivo de transacciones), 1,000 transacciones (100%) o 1,500 transacciones (150%).

  • Para establecer un porcentaje exacto, ingresa %= n. Por ejemplo, %= 80 enviará notificaciones cuando el porcentaje de la cantidad objetivo de transacciones alcance el 80%.
  • Para establecer un rango de porcentaje, ingresa los porcentajes inicial y final, y el valor por el que se incrementará de la siguiente manera: %= start to end by n. Por ejemplo, un valor de %= 80 to 100 by 10 enviará notificaciones cuando el porcentaje de la cantidad objetivo de transacciones alcance el 80%, el 90% y el 100%.

Para configurar la acción de notificación, en actions, establece los siguientes valores. Para obtener más información, consulta Propiedades de configuración para acciones de notificación.

Atributo Valor
actionAttribute WEBHOOK para activar un webhook
value Es el ID del webhook que definiste en la sección anterior, Crea webhooks con la API.

A continuación, se proporciona un ejemplo de cómo crear una condición de notificación que activa un webhook cuando el porcentaje de la cantidad objetivo de transacciones alcanza el 80%, el 90%, el 100%, el 110%, y el 120%.

{
    "notificationCondition": [
      {
        "attribute": "RATEPLAN",
        "value": "123456"
      },
      {
        "attribute": "PUBLISHED",
        "value": "TRUE"
      },
      {
        "attribute": "UsageTarget",
        "value": "%= 80 to 120 by 10"
      }
    } 
    ],
   "actions": [{
          "actionAttribute": "WEBHOOK",
          "value": "b0d77596-142e-4606-ae2d-f55c3c6bfebe",
        }]
  }

Para obtener información sobre cómo ver, actualizar y borrar una condición y una acción de notificación, consulta lo siguiente:

Códigos de respuesta del webhook

A continuación, se resumen los códigos de respuesta del webhook y cómo los interpreta el sistema.

Código de respuesta Descripción
2xx Listo
5xx

Solicitud fallida. El sistema volverá a intentar la solicitud hasta tres veces en intervalos de 5 minutos.

Nota: Los tiempos de espera de lectura y conexión para las solicitudes de webhook son de 3 segundos cada uno, lo que puede provocar solicitudes fallidas.

Other response Solicitud fallida. El sistema no volverá a intentar la solicitud.