Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi
Apigee X. info
Pengantar
Monetisasi menyediakan serangkaian API yang dapat Anda gunakan untuk menguji penyiapan notifikasi. Secara khusus, Anda dapat:
- Uji eksekusi webhook untuk memastikan notifikasi dikirim
- Meninjau dan memproses ulang notifikasi yang dikirim
Menguji webhook
Webhook menentukan handler callback HTTP yang dipicu oleh peristiwa. Untuk mengetahui informasi tentang cara menyiapkan webhook, lihat Menyiapkan notifikasi menggunakan webhook.
Anda dapat menguji webhook dengan melakukan langkah-langkah berikut:
- Melihat jenis pemicu notifikasi webhook yang tersedia
- Melihat payload permintaan contoh untuk pengujian notifikasi webhook
- Menguji eksekusi webhook
Melihat jenis pemicu notifikasi webhook yang tersedia
Melihat jenis pemicu notifikasi webhook yang tersedia dengan mengirimkan permintaan GET ke resource berikut:
/organizations/{org_name}/webhooks/{webhook_id}/test/{developer_email_or_id}/{app_id}/{product_id}/{rateplan_id}
Dengan:
{org_name}menentukan nama organisasi.{webhook_id}menentukan ID webhook. Untuk melihat daftar webhook dan mendapatkan ID webhook, lihat Melihat semua webhook menggunakan API.{developer_email_or_id}menentukan ID developer. Untuk melihat daftar developer, lihat Mencantumkan Developer.{app_id}menentukan ID aplikasi yang pemicu webhook-nya sedang Anda uji. Untuk mencantumkan ID aplikasi di organisasi Anda, lihat Mencantumkan ID Aplikasi di Organisasi.{product_id}menentukan ID produk API yang pemicuan webhook-nya sedang Anda uji. Untuk melihat daftar produk API untuk organisasi, lihat Mencantumkan Produk API.{rateplan_id}menentukan ID paket tarif yang pemicuan webhook-nya sedang Anda uji. ID paket tarif berbeda dengan nama tampilan. Untuk melihat detail paket tarif, termasuk ID, lihat Menjelajahi halaman paket tarif.
Misalnya, panggilan cURL berikut menampilkan RATEPLANQUOTAUSAGE sebagai jenis pemicu notifikasi 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
Berikut adalah contoh respons:
[ "RATEPLANQUOTAUSAGE" ]
Selanjutnya, Anda perlu menentukan skema untuk payload permintaan untuk jenis pemicu notifikasi webhook.
Melihat contoh payload permintaan untuk pengujian notifikasi webhook
Lihat payload permintaan contoh yang dapat Anda gunakan untuk pengujian notifikasi webhook dengan mengeluarkan permintaan GET ke resource berikut:
/organizations/{org_name}/webhooks/{webhook_id}/test/{developer_email_or_id}/{app_id}/{product_id}/{rateplan_id}/{trigger_type}
Dengan:
{org_name}menentukan nama organisasi.{webhook_id}menentukan ID webhook. Untuk melihat daftar webhook dan mendapatkan ID webhook, lihat Melihat semua webhook menggunakan API.{developer_email_or_id}menentukan ID developer. Untuk melihat daftar developer, lihat Mencantumkan Developer.{app_id}menentukan ID aplikasi yang pemicu webhook-nya sedang Anda uji. Untuk mencantumkan ID aplikasi di organisasi Anda, lihat Mencantumkan ID Aplikasi di Organisasi.{product_id}menentukan ID produk API yang pemicuan webhook-nya sedang Anda uji. Untuk melihat daftar produk API untuk organisasi, lihat Mencantumkan Produk API.{rateplan_id}menentukan ID paket tarif yang pemicuan webhook-nya sedang Anda uji. ID paket tarif berbeda dengan nama tampilan. Untuk melihat detail paket tarif, termasuk ID, lihat Menjelajahi halaman paket tarif.{trigger_type}menentukan nama jenis pemicu notifikasi webhook yang ditampilkan pada langkah sebelumnya (Mencantumkan jenis pemicu notifikasi webhook yang tersedia).
Misalnya, panggilan cURL berikut menampilkan payload permintaan contoh untuk jenis pemicu notifikasi 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
Berikut adalah contoh payload permintaan:
{
"eventTriggerReason": "RATEPLANQUOTAUSAGE",
"properties": [
{
"key": "quotaPercentUsed",
"value": "100"
}
]
}
Selanjutnya, Anda mengubah payload permintaan contoh yang ditampilkan sesuai keinginan, dan menggunakannya untuk menguji eksekusi webhook.
Menguji eksekusi webhook
Uji eksekusi webhook dengan mengirimkan permintaan POST ke resource berikut:
/organizations/{org_name}/webhooks/{webhook_id}/test/{developer_email_or_id}/{app_id}/{product_id}/{rateplan_id}.
Dengan:
{org_name}menentukan nama organisasi.{webhook_id}menentukan ID webhook. Untuk melihat daftar webhook dan mendapatkan ID webhook, lihat Melihat semua webhook menggunakan API.{developer_email_or_id}menentukan ID developer. Untuk melihat daftar developer, lihat Mencantumkan Developer.{app_id}menentukan ID aplikasi yang pemicu webhook-nya sedang Anda uji. Untuk mencantumkan ID aplikasi di organisasi Anda, lihat Mencantumkan ID Aplikasi di Organisasi.{product_id}menentukan ID produk API yang pemicuan webhook-nya sedang Anda uji. Untuk melihat daftar produk API untuk organisasi, lihat Mencantumkan Produk API.{rateplan_id}menentukan ID paket tarif yang pemicuan webhook-nya sedang Anda uji. ID paket tarif berbeda dengan nama tampilan. Untuk melihat detail paket tarif, termasuk ID, lihat Menjelajahi halaman paket tarif.
Ubah payload permintaan contoh yang ditampilkan pada langkah sebelumnya (Melihat payload permintaan contoh untuk pengujian notifikasi webhook) sesuai keinginan, dan teruskan di payload permintaan.
Misalnya, panggilan cURL berikut menguji eksekusi webhook yang ditentukan:
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
Berikut adalah contoh respons yang menunjukkan bahwa notifikasi berhasil dikirim ke 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"
}
Melihat dan memproses ulang notifikasi
Monetisasi memungkinkan Anda menyiapkan notifikasi yang dipicu oleh peristiwa tertentu. Untuk informasi tentang cara menyiapkan notifikasi, lihat Menyiapkan notifikasi
Untuk setiap notifikasi yang dikirim, informasi berikut disimpan:
- Coba hitung lagi
- Response code
- Header respons
- Isi respons (hanya 1.000 karakter pertama)
Anda dapat melihat dan memproses ulang notifikasi dengan melakukan langkah-langkah berikut:
Melihat notifikasi yang dikirim
Melihat notifikasi yang telah dikirim untuk organisasi dengan mengirimkan permintaan GET ke resource berikut:
/organizations/{org_name}/notification-service-items
Dengan {org_name} menentukan nama organisasi.
Secara opsional, Anda dapat menentukan satu atau beberapa parameter kueri berikut untuk memfilter daftar notifikasi yang ditampilkan dalam respons:
| Parameter Kueri | Deskripsi |
|---|---|
startdate |
Tanggal mulai dalam format YYYY-MM-DD HH:mm:ss. |
enddate |
Tanggal akhir dalam format YYYY-MM-DD HH:mm:ss. |
status |
Status notifikasi. Nilai yang valid mencakup:
|
toemail |
ID email atau webhook yang digunakan untuk mengirim notifikasi. |
Maksimum 1.000 notifikasi ditampilkan.
Dalam respons, tanda hasMoreItems menunjukkan apakah jumlah
notifikasi dalam daftar yang ditentukan berjumlah lebih dari 1.000. Jika hasMoreItems adalah
true, yang menunjukkan bahwa ada lebih banyak notifikasi daripada yang dapat ditampilkan, dan Anda
ingin melihat notifikasi yang tersisa, Anda perlu menyempurnakan filter parameter kueri
untuk memproses grup notifikasi yang lebih kecil per permintaan. Misalnya, Anda dapat membuat beberapa permintaan menggunakan beberapa rentang tanggal yang lebih kecil, atau menampilkan notifikasi hanya dengan nilai status tertentu.
Misalnya, panggilan cURL berikut mencantumkan notifikasi yang GAGAL untuk webhook tertentu dalam rentang tanggal yang ditentukan:
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
Berikut adalah contoh respons:
{
"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
}
]
}
Melihat detail notifikasi
Lihat detail untuk notifikasi tertentu dengan mengirimkan permintaan GET ke resource berikut:
/organizations/{org_name}/notification-service-items/{notification_id}
Dengan:
{org_name}menentukan nama organisasi.{notification_id}menentukan ID notifikasi yang detailnya ingin Anda tampilkan. Anda dapat memperoleh ID notifikasi dari output respons saat melihat notifikasi yang dikirim.
Misalnya, panggilan cURL berikut mencantumkan detail untuk notifikasi dengan 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
Berikut adalah contoh respons:
{
"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
}
Memproses ulang notifikasi
Memproses ulang notifikasi dengan mengirimkan permintaan POST ke resource berikut:
/organizations/{org_name}/notification-service-items/{notification_id}/reprocess
Dengan:
{org_name}menentukan nama organisasi.{notification_id}menentukan ID item notifikasi yang detailnya ingin Anda tampilkan. Anda dapat memperoleh ID notifikasi dari output respons saat melihat notifikasi yang dikirim.
Misalnya, panggilan cURL berikut memproses ulang notifikasi dengan 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
}