Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione
Documentazione di Apigee X. Informazioni
Introduzione
La monetizzazione fornisce una serie di API che puoi utilizzare per testare la configurazione delle notifiche. Nello specifico, puoi:
- Testa l'esecuzione dei webhook per assicurarti che le notifiche vengano in fase di invio
- Esaminare e rielaborare le notifiche inviate
Test dei webhook
Un webhook definisce un gestore di callback HTTP che viene attivato da un evento. Per informazioni sulla configurazione dei webhook, consulta l'articolo Configurare le notifiche utilizzando webhook.
Per testare i webhook, segui questi passaggi:
- Visualizza i tipi di attivatori di notifica webhook disponibili
- Visualizza un payload di richiesta di esempio per la notifica webhook test
- Testare l'esecuzione di un webhook
Visualizzazione dei tipi di trigger di notifica webhook disponibili
Visualizza i tipi di trigger di notifica webhook disponibili inviando una richiesta GET al risorsa seguente:
/organizations/{org_name}/webhooks/{webhook_id}/test/{developer_email_or_id}/{app_id}/{product_id}/{rateplan_id}
Dove:
{org_name}
specifica il nome dell'organizzazione.{webhook_id}
specifica l'ID del webhook. Per visualizzare un elenco di webhook e per ottenere l'ID webhook, consulta la sezione Visualizzazione di tutti i webhook utilizzando tramite Google Cloud.{developer_email_or_id}
specifica l'ID dello sviluppatore. Per visualizzare un elenco di per sviluppatori, consulta l'elenco Sviluppatori.{app_id}
specifica l'ID dell'applicazione per la quale stai testando il webhook attiva. Per elencare gli ID app nella tua organizzazione, consulta Elencare gli ID app in un Organizzazione.{product_id}
specifica l'ID del prodotto API per il quale stai testando l'attivazione del webhook. Per visualizzare un elenco di prodotti API per un'organizzazione, vedi Elencare prodotti API.{rateplan_id}
specifica l'ID del piano tariffario per il quale stai eseguendo il test l'attivazione del webhook. L'ID piano tariffario è diverso dal nome visualizzato. Per visualizzare il piano tariffario dettagli tra cui l'ID, consulta Esplorazione della pagina Piani tariffari.
Ad esempio, la seguente chiamata cURL restituisce RATEPLANQUOTAUSAGE
come webhook
tipo di attivatore di notifica.
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
Di seguito viene fornito un esempio della risposta:
[ "RATEPLANQUOTAUSAGE" ]
Poi devi determinare lo schema per il payload delle richieste per la notifica webhook. tipo di trigger.
Visualizzazione di un payload di richiesta di esempio per la notifica webhook test
Visualizza un payload di richiesta di esempio che puoi utilizzare per il test delle notifiche webhook inviando un Richiesta GET alla risorsa seguente:
/organizations/{org_name}/webhooks/{webhook_id}/test/{developer_email_or_id}/{app_id}/{product_id}/{rateplan_id}/{trigger_type}
Dove:
{org_name}
specifica il nome dell'organizzazione.{webhook_id}
specifica l'ID del webhook. Per visualizzare un elenco di webhook e per ottenere l'ID webhook, consulta la sezione Visualizzazione di tutti i webhook utilizzando tramite Google Cloud.{developer_email_or_id}
specifica l'ID dello sviluppatore. Per visualizzare un elenco di per sviluppatori, consulta l'elenco Sviluppatori.{app_id}
specifica l'ID dell'applicazione per la quale stai testando il webhook attiva. Per elencare gli ID app nella tua organizzazione, consulta Elencare gli ID app in un Organizzazione.{product_id}
specifica l'ID del prodotto API per il quale stai testando l'attivazione del webhook. Per visualizzare un elenco di prodotti API per un'organizzazione, vedi Elencare prodotti API.{rateplan_id}
specifica l'ID del piano tariffario per il quale stai eseguendo il test l'attivazione del webhook. L'ID piano tariffario è diverso dal nome visualizzato. Per visualizzare il piano tariffario dettagli tra cui l'ID, consulta Esplorazione della pagina Piani tariffari.{trigger_type}
specifica il nome del tipo di attivatore di notifica webhook restituito nel passaggio precedente (Elenca i webhook disponibili tipi di trigger di notifica).
Ad esempio, la seguente chiamata cURL restituisce un payload di richiesta di esempio per
RATEPLANQUOTAUSAGE
tipo di attivatore di notifica webhook:
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
Di seguito viene fornito un payload di esempio per le richieste:
{ "eventTriggerReason": "RATEPLANQUOTAUSAGE", "properties": [ { "key": "quotaPercentUsed", "value": "100" } ] }
Quindi, puoi modificare il payload della richiesta di esempio restituito come desiderato e utilizzarlo per testare il dell'esecuzione del webhook.
Test dell'esecuzione di un webhook
Testa l'esecuzione di un webhook inviando una richiesta POST alla seguente risorsa:
/organizations/{org_name}/webhooks/{webhook_id}/test/{developer_email_or_id}/{app_id}/{product_id}/{rateplan_id}
.
Dove:
{org_name}
specifica il nome dell'organizzazione.{webhook_id}
specifica l'ID del webhook. Per visualizzare un elenco di webhook e per ottenere l'ID webhook, consulta la sezione Visualizzazione di tutti i webhook utilizzando tramite Google Cloud.{developer_email_or_id}
specifica l'ID dello sviluppatore. Per visualizzare un elenco di per sviluppatori, consulta l'elenco Sviluppatori.{app_id}
specifica l'ID dell'applicazione per la quale stai testando il webhook attiva. Per elencare gli ID app nella tua organizzazione, consulta Elencare gli ID app in un Organizzazione.{product_id}
specifica l'ID del prodotto API per il quale stai testando l'attivazione del webhook. Per visualizzare un elenco di prodotti API per un'organizzazione, vedi Elencare prodotti API.{rateplan_id}
specifica l'ID del piano tariffario per il quale stai eseguendo il test l'attivazione del webhook. L'ID piano tariffario è diverso dal nome visualizzato. Per visualizzare il piano tariffario dettagli tra cui l'ID, consulta Esplorazione della pagina Piani tariffari.
Modifica il payload di richiesta di esempio restituito nel passaggio precedente (Visualizza un payload di richiesta di esempio per il test delle notifiche webhook) come indicato di seguito. desiderato e passarlo al payload della richiesta.
Ad esempio, la seguente chiamata cURL verifica l'esecuzione del webhook specificato:
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
Di seguito viene fornito un esempio di risposta che indica che la notifica è stata inviata correttamente al webhook:
{ "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" }
Visualizzazione e rielaborazione delle notifiche
La monetizzazione ti consente di impostare notifiche che vengono attivate da eventi specifici. Per informazioni sulla configurazione delle notifiche, vedi Configurare le notifiche
Per ogni notifica inviata, vengono memorizzate le seguenti informazioni:
- Riprova conteggio
- Codice risposta
- Intestazione della risposta
- Contenuto della risposta (solo primi 1000 caratteri)
Puoi visualizzare e rielaborare le notifiche procedendo nel seguente modo:
Visualizzazione delle notifiche inviate
Visualizza le notifiche inviate per un'organizzazione inviando una richiesta GET al risorsa:
/organizations/{org_name}/notification-service-items
Dove {org_name}
specifica il nome dell'organizzazione.
Facoltativamente, puoi specificare uno o più dei seguenti parametri di query per filtrare l'elenco di notifiche restituite nella risposta:
Parametro di ricerca | Descrizione |
---|---|
startdate |
Data di inizio nel formato YYYY-MM-DD HH:mm:ss . |
enddate |
Data di fine nel formato YYYY-MM-DD HH:mm:ss . |
status |
Stato delle notifiche. I valori validi sono:
|
toemail |
ID email o webhook a cui è stata inviata la notifica. |
Vengono restituite al massimo 1000 notifiche.
Nella risposta, il flag hasMoreItems
indica se il numero di
nell'elenco specificato è maggiore di 1000. Se hasMoreItems
è
true
, a indicare che il numero di notifiche è superiore a quello che potrebbe essere visualizzato e che
Per visualizzare le altre notifiche, devi perfezionare i filtri dei parametri di query
per elaborare gruppi più piccoli di notifiche per richiesta. Ad esempio, puoi rendere più
richieste utilizzando diversi intervalli di date più piccoli o notifiche di reso con solo un determinato stato
e i relativi valori.
Ad esempio, la seguente chiamata cURL elenca le notifiche che NON RIUSCITI per il webhook entro l'intervallo di date specificato:
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
Di seguito viene fornito un esempio della risposta:
{ "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 } ] }
Visualizzazione dei dettagli di una notifica
Visualizza i dettagli di una notifica specifica inviando una richiesta GET a: risorsa:
/organizations/{org_name}/notification-service-items/{notification_id}
Dove:
{org_name}
specifica il nome dell'organizzazione.{notification_id}
specifica l'ID della notifica per la quale vuoi ricevere visualizzare i dettagli. Puoi ottenere l'ID notifica dall'output della risposta durante la visualizzazione delle notifiche inviate.
Ad esempio, la seguente chiamata cURL elenca i dettagli della notifica con l'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
Di seguito viene fornito un esempio della risposta:
{ "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 }
Rielaborazione di una notifica
Rielabora una notifica inviando una richiesta POST alla seguente risorsa:
/organizations/{org_name}/notification-service-items/{notification_id}/reprocess
Dove:
{org_name}
specifica il nome dell'organizzazione.{notification_id}
specifica l'ID della notifica che vuoi segnalare per visualizzare i dettagli. Puoi ottenere l'ID notifica dall'output della risposta durante la visualizzazione delle notifiche inviate.
Ad esempio, la seguente chiamata cURL rielabora la notifica con 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 }