Configuración de la notificación de prueba

Estás viendo la documentación de Apigee Edge.
Ve a la Documentación de Apigee X.
información

Introducción

La monetización proporciona un conjunto de APIs que puedes usar para probar tu configuración de notificaciones. En concreto, puedes hacer lo siguiente:

Prueba webhooks

Un webhook define un controlador de devolución de llamada HTTP que un evento activa. Información sobre la configuración de webhooks, consulta Configurar notificaciones con webhooks.

Para probar tus webhooks, sigue estos pasos:

  1. Consulta los tipos de activadores de notificaciones de webhook disponibles
  2. Consulta una carga útil de solicitud de ejemplo para notificaciones de webhook pruebas
  3. Prueba la ejecución de un webhook

Visualiza los tipos de activadores de notificaciones de webhook disponibles

Para ver los tipos de activadores de notificaciones de webhook disponibles, envía una solicitud GET al siguiente recurso:

/organizations/{org_name}/webhooks/{webhook_id}/test/{developer_email_or_id}/{app_id}/{product_id}/{rateplan_id}

Aquí:

  • {org_name} especifica el nombre de la organización.
  • {webhook_id} especifica el ID del webhook. Para ver una lista de webhooks obtener el ID del webhook, consulte Cómo ver todos los webhooks con el API
  • {developer_email_or_id} especifica el ID del desarrollador. Para ver una lista de desarrolladores, consulta Lista Desarrolladores.
  • {app_id} especifica el ID de la aplicación para la que estás probando el webhook desencadenante. Para enumerar los IDs de app de tu organización, consulta Cómo enumerar los IDs de app de un Organización.
  • {product_id} especifica el ID del producto de API para el que realizas la prueba. activación de webhook. Si deseas ver una lista de los productos de API para una organización, consulta Enumera productos de API.
  • {rateplan_id} especifica el ID del plan de tarifas para el que realizas la prueba. activación de webhook. El ID del plan de tarifas es diferente del nombre visible. Para ver el plan de tarifas detalles, incluido el ID, consulta Explora la página de planes de tarifas.

Por ejemplo, la siguiente llamada cURL muestra RATEPLANQUOTAUSAGE como el webhook tipo de activador de notificación.

curl -H "Content-Type: application/json" -X GET \ 
"https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks/0a07eb1f-f485-4539-8beb-01be449699b3/test/joe@example.com/e759c119-510c-49a8-886c-f184091944bd/myproduct/mypackage_anrp" \ 
-u email:password

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

[
  "RATEPLANQUOTAUSAGE"
]

A continuación, debes determinar el esquema de la carga útil de la solicitud para la notificación de webhook tipo de activador.

Visualiza una carga útil de solicitud de muestra para notificaciones de webhook prueba

Revisa una carga útil de solicitud de ejemplo que puedes usar para probar la notificación de webhook mediante la emisión de un GET al siguiente recurso:

/organizations/{org_name}/webhooks/{webhook_id}/test/{developer_email_or_id}/{app_id}/{product_id}/{rateplan_id}/{trigger_type}

Aquí:

Por ejemplo, la siguiente llamada cURL devuelve una carga útil de solicitud de muestra para el Tipo de activador de notificaciones de webhook RATEPLANQUOTAUSAGE:

curl -H "Content-Type: application/json" -X GET \ 
"https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks/0a07eb1f-f485-4539-8beb-01be449699b3/test/joe@example.com/e759c119-510c-49a8-886c-f184091944bd/myproduct/mypackage_anrp/RATEPLANQUOTAUSAGE" \ 
-u email:password

A continuación, se proporciona una carga útil de solicitud de muestra:

{
   "eventTriggerReason": "RATEPLANQUOTAUSAGE",
   "properties": [
   {
        "key": "quotaPercentUsed",
        "value": "100"
   }
   ]
}

A continuación, modifica la carga útil de la solicitud de muestra que se muestra según lo desees y la usarás para probar la carga útil la ejecución del webhook.

Prueba la ejecución de un webhook

Prueba la ejecución de un webhook mediante la emisión de una solicitud POST al siguiente recurso:

/organizations/{org_name}/webhooks/{webhook_id}/test/{developer_email_or_id}/{app_id}/{product_id}/{rateplan_id}.

Aquí:

  • {org_name} especifica el nombre de la organización.
  • {webhook_id} especifica el ID del webhook. Para ver una lista de webhooks obtener el ID del webhook, consulte Cómo ver todos los webhooks con el API
  • {developer_email_or_id} especifica el ID del desarrollador. Para ver una lista de desarrolladores, consulta Lista Desarrolladores.
  • {app_id} especifica el ID de la aplicación para la que estás probando el webhook desencadenante. Para enumerar los IDs de app de tu organización, consulta Cómo enumerar los IDs de app de un Organización.
  • {product_id} especifica el ID del producto de API para el que realizas la prueba. activación de webhook. Si deseas ver una lista de los productos de API para una organización, consulta Enumera productos de API.
  • {rateplan_id} especifica el ID del plan de tarifas para el que realizas la prueba. activación de webhook. El ID del plan de tarifas es diferente del nombre visible. Para ver el plan de tarifas detalles, incluido el ID, consulta Explora la página de planes de tarifas.

Modifica la carga útil de la solicitud de ejemplo que se mostró en el paso anterior (Consulta una carga útil de solicitud de ejemplo para pruebas de notificaciones de webhook) de la siguiente manera: deseado y pasarla a la carga útil de la solicitud.

Por ejemplo, la siguiente llamada cURL prueba la ejecución del webhook especificado:

curl -H "Content-Type: application/json" -X POST -d \
'{
  "eventTriggerReason": "RATEPLANQUOTAUSAGE",
  "properties": [
    {
      "key": "quotaPercentUsed",
      "value": "120"
    }
  ]
}' \
"https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks/0a07eb1f-f485-4539-8beb-01be449699b3/test/joe@example.com/e759c119-510c-49a8-886c-f184091944bd/myproduct/mypackage_anrp" \ 
-u email:password

A continuación, se proporciona un ejemplo de la respuesta que indica que la notificación se envió. al webhook correctamente:

{
  "original": {
    "createdDate": 1463619959930,
    "createdTimeStamp": 1463616000000,
    "notificationType": "WEBHOOK",
    "orgId": "myorg",
    "rawMessage": "{\"orgName\":\"myorg\",\"developerEmail\":\"joe@example.com\",\"developerFirstName\":\"Joe\",\"developerLastName\":\"Smith\",\"applicationName\":\"myapp\",\"packageName\":\"MyPackage\",\"packageId\":\"mypackage\",\"ratePlanId\":\"mypackage_anrp\",\"ratePlanName\":\"anrp\",\"ratePlanType\":\"STANDARD\",\"developerRatePlanQuotaTarget\":200,\"quotaPercentUsed\":\"120\",\"ratePlanStartDate\":1463616000000,\"ratePlanEndDate\":null,\"nextBillingCycleStartDate\":null,\"products\":[\"myproduct\"],\"developerCustomAttributes\":[]\"triggerTime\":1463619959929,\"triggerReason\":\"RATEPLANQUOTAUSAGE\",\"developerQuotaResetDate\":null}",
    "retryCount": 0,
    "retryStatuses": [],
    "source": "MailTo: [36112720-1304-4e0b-9b17-991f5e121ebb], Org: [myorg], TransactionId: [], LimitId: [], Key: []",
    "toEmail": "http://123.45.67.89/webhook",
    "updatedDate": 1463619959930
  },
  "raw": "This is the response",
  "responseCode": 200,
  "status": "NOTIFICATION_SENT"
}

Visualización y reprocesamiento de notificaciones

La monetización te permite configurar notificaciones que se activan por eventos específicos. Para Obtén información para configurar las notificaciones en Cómo configurar las notificaciones.

Para cada notificación enviada, se almacena la siguiente información:

  • Volver a contar
  • Código de respuesta
  • Encabezado de respuesta
  • Contenido de la respuesta (solo los primeros 1,000 caracteres)

Para ver y volver a procesar las notificaciones, sigue estos pasos:

  1. Consulta las notificaciones que se enviaron
  2. Cómo ver los detalles de una notificación
  3. Cómo volver a procesar una notificación

Visualización de las notificaciones enviadas

Ver las notificaciones que se han enviado para una organización mediante el envío de una solicitud GET a siguiente recurso:

/organizations/{org_name}/notification-service-items

En el ejemplo anterior, {org_name} especifica el nombre de la organización.

De manera opcional, puedes especificar uno o más de los siguientes parámetros de consulta para filtrar la lista de notificaciones mostradas en la respuesta:

Parámetro de consulta Descripción
startdate Es la fecha de inicio en el formato YYYY-MM-DD HH:mm:ss.
enddate Es la fecha de finalización en el formato YYYY-MM-DD HH:mm:ss.
status Estado de las notificaciones. Entre los valores válidos, se incluyen los siguientes:
  • BLANK_MESSAGE
  • DUPLICATE
  • FAILED
  • NOTIFICATION_SENT
  • OPT_OUT
  • QUEUED
  • TEMPLATE_NOT_FOUND
toemail ID de correo electrónico o webhook al que se envió la notificación.

Se muestra un máximo de 1,000 notificaciones.

En la respuesta, la marca hasMoreItems indica si la cantidad de notificaciones en la lista especificada equivale a más de 1,000. Si hasMoreItems es true, lo que indica que hay más notificaciones de las que se podrían mostrar. Si deseas ver las notificaciones restantes, debes definir mejor los filtros de los parámetros de consulta para procesar grupos más pequeños de notificaciones por solicitud. Por ejemplo, puedes hacer varios solicitudes con varios períodos más breves o devoluciones de notificaciones con un solo estado de salida.

Por ejemplo, la siguiente llamada cURL enumera las notificaciones que tuvieron un ERROR en la operación especificada webhook dentro del rango de fechas especificado:

curl -H "Content-Type: application/json" -X GET \ 
"https://api.enterprise.apigee.com/v1/mint/organizations/myorg/notification-service-items?enddate=2016-05-19 12:00:00&startdate=2016-05-18 12:00:00&status=FAILED&toemail=http://123.45.6789:8000/webhook" \ 
-u email:password 

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

 {
   "hasMoreItems": false,
   "notifications": [
   { 
      "createdDate": 1463626865974, 
      "createdTimeStamp": 1463616000000, 
      "id": "9d87c6ea-1394-495b-bfb7-1d2e7ef3f837", 
      "notificationType": "WEBHOOK", 
      "orgId": "Org_d40f6c2e-1d6d-11e6-a4ed-af8444f24e4f", 
      "rawMessage": "{\"orgName\":\"Org_d40f6c2e-1d6d-11e6-a4ed-af8444f24e4f\",\"developerEmail\":\"joe@example.com\",\"developerFirstName\":\"Joe\",\"developerLastName\":\"Smith\",\"applicationName\":\"MyApp\",
\"packageName\":\"test-package\",\"packageId\":\"myorg@@@test-package-9ubo\",\"ratePlanId\":\"myorg@@@test-package-9ubo_anrp\",\"ratePlanName\":\"anrp\",\"ratePlanType\":\"STANDARD\",
\"developerRatePlanQuotaTarget\":10,\"quotaPercentUsed\":\"20\",\"ratePlanStartDate\":1463616000000,\"ratePlanEndDate\":null,\"nextBillingCycleStartDate\":1464739200000,\"products\":[\"product1\"],
\"developerCustomAttributes\":[],\"triggerTime\":1463626865907,\"triggerReason\":\"RatePlanQuotaUsage\",\"developerQuotaResetDate\":\"1464810145000\"}", 
      "retryCount": 3, 
      "retryStatuses": [ 
      { 
         "responseCode": 500, 
         "responseMessage": "{\"Headers\":\"[{\"name\":\"Content-length\",\"buffer\":{\"empty\":false,\"full\":false},\"valuePos\":15,\"value\":\"20\",\"elements\":[{\"name\":\"20\",\"value\":null,\"parameters\":[],\"parameterCount\":0}]},{\"name\":\"Date\",\"buffer\":{\"empty\":false,\"full\":false},\"valuePos\":5,\"value\":\"Thu, 19 May 2016 03:01:09 GMT\",\"elements\":[{\"name\":\"Thu\",\"value\":null,\"parameters\":[],\"parameterCount\":0},{\"name\":\"19 May 2016 03:01:09 GMT\",\"value\":null,\"parameters\":[],\"parameterCount\":0}]}]\",\"StatusCode\":\"500\",\"Content : \":\"This is the response\"}", 
         "retriedAt": 1463626869184,
         "retryAttempt": 1 
      }, 
      { 
         "responseCode": 500, 
         "responseMessage": "{\"Headers\":\"[{\"name\":\"Content-length\",\"buffer\":{\"empty\":false,\"full\":false},\"valuePos\":15,\"value\":\"20\",\"elements\":[{\"name\":\"20\",\"value\":null,\"parameters\":[],\"parameterCount\":0}]},{\"name\":\"Date\",\"buffer\":{\"empty\":false,\"full\":false},\"valuePos\":5,\"value\":\"Thu, 19 May 2016 03:01:09 GMT\",\"elements\":[{\"name\":\"Thu\",\"value\":null,\"parameters\":[],\"parameterCount\":0},{\"name\":\"19 May 2016 03:01:09 GMT\",\"value\":null,\"parameters\":[],\"parameterCount\":0}]}]\",\"StatusCode\":\"500\",\"Content : \":\"This is the response\"}", 
         "retriedAt": 1463626869318, 
         "retryAttempt": 2 
      }, 
      { 
         "responseCode": 500, 
         "responseMessage": "{\"Headers\":\"[{\"name\":\"Content-length\",\"buffer\":{\"empty\":false,\"full\":false},\"valuePos\":15,\"value\":\"20\",\"elements\":[{\"name\":\"20\",\"value\":null,\"parameters\":[],\"parameterCount\":0}]},{\"name\":\"Date\",\"buffer\":{\"empty\":false,\"full\":false},\"valuePos\":5,\"value\":\"Thu, 19 May 2016 03:01:09 GMT\",\"elements\":[{\"name\":\"Thu\",\"value\":null,\"parameters\":[],\"parameterCount\":0},{\"name\":\"19 May 2016 03:01:09 GMT\",\"value\":null,\"parameters\":[],\"parameterCount\":0}]}]\",\"StatusCode\":\"500\",\"Content : \":\"This is the response\"}", 
         "retriedAt": 1463626869378, 
         "retryAttempt": 3 
      } 
      ], 
      "source": "MailTo: [6c3cde37-a8f1-4077-adbe-e9f6605a7299], Org: [myorg], TransactionId: [b8d763be-7185-450d-b421-df38c870fabd], LimitId: [RatePlan-Limit:myorg@@@test-package-9ubo_anrp], Key: [myorg@@@kjGSxEGtZeekBEyI~myorg@@@test-package-9ubo_anrp~Transactions~Calls~20]", 
      "status": "FAILED", 
      "toEmail": "http://123.45.67.89:8000/webhook", 
      "updatedDate": 1463626865974 
   } 
   ] 
}

Cómo ver los detalles de una notificación

Para ver los detalles de una notificación específica, envía una solicitud GET a la siguiente recurso:

/organizations/{org_name}/notification-service-items/{notification_id}

Aquí:

  • {org_name} especifica el nombre de la organización.
  • {notification_id} especifica el ID de la notificación para la que deseas continuar. mostrar detalles. Puedes obtener el ID de la notificación del resultado de la respuesta cuando visualizas las notificaciones enviadas.

Por ejemplo, la siguiente llamada cURL enumera los detalles de la notificación con el ID. 4b3dfadf-3a96-4a92-9512-1feff22f74f3:

curl -H "Content-Type: application/json" -X GET \ 
"https://api.enterprise.apigee.com/v1/mint/organizations/myorg/notification-service-items/faa8e6a8-754e-40e8-9e0c-4dee6c9aca23" \ 
-u email:password
 

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

 {
  "createdDate": 1461062402871,
  "createdTimeStamp": 1461024000000,
  "id": "faa8e6a8-754e-40e8-9e0c-4dee6c9aca23",
  "notificationType": "WEBHOOK",
  "orgId": "myorg",
  "rawMessage": "{\"orgName\":\"myorg\",\"developerEmail\":\"joe@example.com\",\"developerFirstName\":\"Joe\",\"developerLastName\":\"Smith\",\"applicationName\":\"myapp\",\"packageName\":\"mypackage\",\"ratePlanName\":\"anrp\",\"ratePlanType\":\"STANDARD\",\"developerRatePlanQuotaTarget\":54000,\"quotaPercentUsed\":\"1\",\"ratePlanStartDate\":1460419200000,\"ratePlanEndDate\":null,\"nextBillingCycleStartDate\":null,\"products\":[\"myproduct\"],\"developerCustomAttributes\":[],\"triggerTime\":1461062395966,\"triggerReason\":\"RatePlanQuotaUsage\"}",
  "retryCount": 0,
  "retryStatuses": [],
  "source": "MailTo: [c9e42fcd-9632-4376-b92d-0fa27f178a3b], Org: [myorg], TransactionId: [0352e568-2724-42d9-a264-1b62586d5948], LimitId: [RatePlan-Limit:amyorg@@@mypackage-a0y9_anrp], Key: [myorg@@@PPXsQbkyO1bBhQOh~myorg@@@mypackage-a0y9_anrp~Transactions~Calls~1]",
  "status": "NOTIFICATION_SENT",
  "toEmail": "http://123.45.67.89:8000/webhook",
  "updatedDate": 1461062402871
}

Vuelve a procesar una notificación

Vuelve a procesar una notificación mediante la emisión de una solicitud POST al siguiente recurso:

/organizations/{org_name}/notification-service-items/{notification_id}/reprocess

Aquí:

  • {org_name} especifica el nombre de la organización.
  • {notification_id} especifica el ID del elemento de notificación para el que deseas recibir la notificación. para mostrar los detalles. Puedes obtener el ID de la notificación del resultado de la respuesta cuando visualizas las notificaciones enviadas.

Por ejemplo, la siguiente llamada cURL vuelve a procesar la notificación con el ID. 4b3dfadf-3a96-4a92-9512-1feff22f74f3:

curl -H "Content-Type: application/json" -X POST \ 
"https://api.enterprise.apigee.com/v1/mint/organizations/myorg/notification-service-items/faa8e6a8-754e-40e8-9e0c-4dee6c9aca23/reprocess" \ 
-u email:password
 
{
  "createdDate": 1461062402871,
  "createdTimeStamp": 1461024000000,
  "id": "faa8e6a8-754e-40e8-9e0c-4dee6c9aca23",
  "notificationType": "WEBHOOK",
  "orgId": "myorg",
  "rawMessage": "{\"orgName\":\"myorg\",\"developerEmail\":\"joe@example.com\",\"developerFirstName\":\"Joe\",\"developerLastName\":\"Smith\",\"applicationName\":\"myapp\",\"packageName\":\"mypackage\",\"ratePlanName\":\"anrp\",\"ratePlanType\":\"STANDARD\",\"developerRatePlanQuotaTarget\":54000,\"quotaPercentUsed\":\"1\",\"ratePlanStartDate\":1460419200000,\"ratePlanEndDate\":null,\"nextBillingCycleStartDate\":null,\"products\":[\"myproduct\"],\"developerCustomAttributes\":[],\"triggerTime\":1461062395966,\"triggerReason\":\"RatePlanQuotaUsage\"}",
  "retryCount": 0,
  "retryStatuses": [
    {
      "responseCode": 200,
      "responseMessage": "{\"Headers\":\"[{\"name\":\"Accept-Encoding\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":16,\"elements\":[{\"name\":\"gzip\",\"value\":null,\"parameters\":[],\"parameterCount\":0},{\"name\":\"deflate\",\"value\":null,\"parameters\":[],\"parameterCount\":0}],\"value\":\"gzip,deflate\"},{\"name\":\"Content-Type\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":13,\"elements\":[{\"name\":\"application/json\",\"value\":null,\"parameters\":[{\"name\":\"charset\",\"value\":\"UTF-8\"}],\"parameterCount\":1}],\"value\":\"application/json; charset=UTF-8\"},{\"name\":\"Date\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":5,\"elements\":[{\"name\":\"Mon\",\"value\":null,\"parameters\":[],\"parameterCount\":0},{\"name\":\"23 May 2016 21:46:37 GMT\",\"value\":null,\"parameters\":[],\"parameterCount\":0}],\"value\":\"Mon, 23 May 2016 21:46:37 GMT\"},{\"name\":\"Server\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":7,\"elements\":[{\"name\":\"Apigee Router\",\"value\":null,\"parameters\":[],\"parameterCount\":0}],\"value\":\"Apigee Router\"},{\"name\":\"User-Agent\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":11,\"elements\":[{\"name\":\"Apache-HttpClient/4.3.5 (java 1.5)\",\"value\":null,\"parameters\":[],\"parameterCount\":0}],\"value\":\"Apache-HttpClient/4.3.5 (java 1.5)\"},{\"name\":\"X-Forwarded-For\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":16,\"elements\":[{\"name\":\"54.200.58.80\",\"value\":null,\"parameters\":[],\"parameterCount\":0}],\"value\":\"54.200.58.80\"},{\"name\":\"X-Forwarded-Port\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":17,\"elements\":[{\"name\":\"80\",\"value\":null,\"parameters\":[],\"parameterCount\":0}],\"value\":\"80\"},{\"name\":\"X-Forwarded-Proto\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":18,\"elements\":[{\"name\":\"http\",\"value\":null,\"parameters\":[],\"parameterCount\":0}],\"value\":\"http\"},{\"name\":\"Content-Length\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":15,\"elements\":[{\"name\":\"1173\",\"value\":null,\"parameters\":[],\"parameterCount\":0}],\"value\":\"1173\"},{\"name\":\"Connection\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":11,\"elements\":[{\"name\":\"keep-alive\",\"value\":null,\"parameters\":[],\"parameterCount\":0}],\"value\":\"keep-alive\"}]\",\"StatusCode\":\"200\",\"Content : \":\"{\"orgName\":\"myorg\",\"developerEmail\":\"joe@example.com\",\"developerFirstName\":\"Joe\",\"developerLastName\":\"Smith\",\"applicationName\":\"MyApp\",\"packageName\":\"mypackage\",\"ratePlanName\":\"anrp\",\"ratePlanType\":\"STANDARD\",\"developerRatePlanQuotaTarget\":54000,\"quotaPercentUsed\":\"1\",\"ratePlanStartDate\":1460419200000,\"ratePlanEndDate\":null,\"nextBillingCycleStartDate\":null,\"products\":[\"product1\"],\"developerCustomAttributes\":[],
  "source": "MailTo: [c9e42fcd-9632-4376-b92d-0fa27f178a3b], Org: [myorg], TransactionId: [0352e568-2724-42d9-a264-1b62586d5948], LimitId: [RatePlan-Limit:amyorg@@@mypackage-a0y9_anrp], Key: [myorg@@@PPXsQbkyO1bBhQOh~myorg@@@mypackage-a0y9_anrp~Transactions~Calls~1]",
  "status": "NOTIFICATION_SENT",
  "toEmail": "http://123.45.67.89:8000/webhook",
  "updatedDate": 1461062402871
}