Stai visualizzando la documentazione di Apigee Edge.
Consulta la
documentazione di Apigee X. info
Introduzione
La monetizzazione fornisce un insieme di API che puoi utilizzare per testare la configurazione delle notifiche. Nello specifico, puoi:
- Testare l'esecuzione dei webhook per assicurarti che le notifiche vengano inviate
- Esaminare ed elaborare di nuovo le notifiche inviate
Testare i webhook
Un webhook definisce un gestore di callback HTTP che viene attivato da un evento. Per informazioni sulla configurazione dei webhook, consulta Configurare le notifiche utilizzando i webhook.
Puoi testare i webhook seguendo questi passaggi:
- Visualizzare i tipi di trigger di notifica webhook disponibili
- Visualizzare un payload di richiesta di esempio per il test delle notifiche webhook
- Testare l'esecuzione di un webhook
Visualizzare i tipi di trigger di notifica webhook disponibili
Visualizza i tipi di trigger di notifica webhook disponibili inviando una richiesta GET 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 ottenere l'ID webhook, consulta Visualizzare tutti i webhook utilizzando l' API.{developer_email_or_id}specifica l'ID dello sviluppatore. Per visualizzare un elenco di sviluppatori, consulta Elencare gli sviluppatori.{app_id}specifica l'ID dell'applicazione per cui stai testando l'attivazione del webhook triggering. 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 cui stai testando l'attivazione del webhook. Per visualizzare un elenco di prodotti API per un'organizzazione, consulta Elencare i prodotti API.{rateplan_id}specifica l'ID del piano tariffario per cui stai testando l'attivazione del webhook. L'ID del piano tariffario è diverso dal nome visualizzato. Per visualizzare i dettagli del piano tariffario , incluso l'ID, consulta Esplorare la pagina dei piani tariffari.
Ad esempio, la seguente chiamata cURL restituisce RATEPLANQUOTAUSAGE come tipo di trigger 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" \ -u email:password
Di seguito è riportato un esempio di risposta:
[ "RATEPLANQUOTAUSAGE" ]
A questo punto devi determinare lo schema per il payload della richiesta per il tipo di trigger di notifica webhook.
Visualizzare un payload di richiesta di esempio per il test delle notifiche webhook
Visualizza un payload di richiesta di esempio che puoi utilizzare per il test delle notifiche webhook inviando una richiesta GET alla seguente risorsa:
/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 ottenere l'ID webhook, consulta Visualizzare tutti i webhook utilizzando l' API.{developer_email_or_id}specifica l'ID dello sviluppatore. Per visualizzare un elenco di sviluppatori, consulta Elencare gli sviluppatori.{app_id}specifica l'ID dell'applicazione per cui stai testando l'attivazione del webhook triggering. 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 cui stai testando l'attivazione del webhook. Per visualizzare un elenco di prodotti API per un'organizzazione, consulta Elencare i prodotti API.{rateplan_id}specifica l'ID del piano tariffario per cui stai testando l'attivazione del webhook. L'ID del piano tariffario è diverso dal nome visualizzato. Per visualizzare i dettagli del piano tariffario , incluso l'ID, consulta Esplorare la pagina dei piani tariffari.{trigger_type}specifica il nome del tipo di trigger di notifica webhook restituito nel passaggio precedente (Elencare i tipi di trigger di notifica webhook disponibili).
Ad esempio, la seguente chiamata cURL restituisce un payload di richiesta di esempio per il
RATEPLANQUOTAUSAGE tipo di trigger 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 è riportato un payload di richiesta di esempio:
{
"eventTriggerReason": "RATEPLANQUOTAUSAGE",
"properties": [
{
"key": "quotaPercentUsed",
"value": "100"
}
]
}
A questo punto, modifica il payload della richiesta di esempio restituito, come preferisci, e utilizzalo per testare l' esecuzione del webhook.
Testare l'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 ottenere l'ID webhook, consulta Visualizzare tutti i webhook utilizzando l' API.{developer_email_or_id}specifica l'ID dello sviluppatore. Per visualizzare un elenco di sviluppatori, consulta Elencare gli sviluppatori.{app_id}specifica l'ID dell'applicazione per cui stai testando l'attivazione del webhook triggering. 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 cui stai testando l'attivazione del webhook. Per visualizzare un elenco di prodotti API per un'organizzazione, consulta Elencare i prodotti API.{rateplan_id}specifica l'ID del piano tariffario per cui stai testando l'attivazione del webhook. L'ID del piano tariffario è diverso dal nome visualizzato. Per visualizzare i dettagli del piano tariffario , incluso l'ID, consulta Esplorare la pagina dei piani tariffari.
Modifica il payload della richiesta di esempio restituito nel passaggio precedente (Visualizzare un payload di richiesta di esempio per il test delle notifiche webhook) come preferisci e passalo nel payload della richiesta.
Ad esempio, la seguente chiamata cURL testa 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 è riportato 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"
}
Visualizzare ed elaborare di nuovo le notifiche
La monetizzazione ti consente di configurare le notifiche attivate da eventi specifici. Per informazioni sulla configurazione delle notifiche, consulta Configurare le notifiche
Per ogni notifica inviata, vengono memorizzate le seguenti informazioni:
- Riprova conteggio
- Codice di risposta
- Intestazione della risposta
- Contenuto della risposta (solo i primi 1000 caratteri)
Puoi visualizzare ed elaborare di nuovo le notifiche seguendo questi passaggi:
- Visualizzare le notifiche inviate
- Visualizzare i dettagli di una notifica
- Elaborare di nuovo una notifica
Visualizzare le notifiche inviate
Visualizza le notifiche inviate per un'organizzazione inviando una richiesta GET alla seguente risorsa:
/organizations/{org_name}/notification-service-items
Dove {org_name} specifica il nome dell'organizzazione.
Se vuoi, puoi specificare uno o più dei seguenti parametri di query per filtrare l'elenco delle 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 includono:
|
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
notifiche nell'elenco specificato è superiore a 1000. Se hasMoreItems è
true, il che indica che sono presenti più notifiche di quelle che possono essere visualizzate e vuoi visualizzare le notifiche rimanenti, devi perfezionare i filtri dei parametri di query
per elaborare gruppi di notifiche più piccoli per richiesta. Ad esempio, puoi effettuare più
richieste utilizzando intervalli di date più piccoli oppure restituire notifiche con solo determinati valori di stato.
Ad esempio, la seguente chiamata cURL elenca le notifiche con stato FAILED per il webhook specificato nell'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 è riportato un esempio di 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
}
]
}
Visualizzare i dettagli di una notifica
Visualizza i dettagli di una notifica specifica inviando una richiesta GET alla seguente risorsa:
/organizations/{org_name}/notification-service-items/{notification_id}
Dove:
{org_name}specifica il nome dell'organizzazione.{notification_id}specifica l'ID della notifica di cui vuoi visualizzare i dettagli. Puoi ottenere l'ID notifica dall'output della risposta quando visualizzi le notifiche inviate.
Ad esempio, la seguente chiamata cURL elenca i dettagli della notifica con 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 è riportato un esempio di 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
}
Elaborare di nuovo una notifica
Elabora di nuovo 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 dell'elemento di notifica di cui vuoi visualizzare i dettagli. Puoi ottenere l'ID notifica dall'output della risposta quando visualizzi le notifiche inviate.
Ad esempio, la seguente chiamata cURL elabora di nuovo 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
}