Anda sedang melihat dokumentasi Apigee Edge.
Buka
Dokumentasi Apigee X. info
Pengantar
Monetisasi menyediakan kumpulan API yang dapat Anda gunakan untuk menguji penyiapan notifikasi. Secara khusus, Anda dapat:
- Uji eksekusi webhook untuk memastikan notifikasi dikirimkan
- Meninjau dan memproses ulang notifikasi yang dikirim
Menguji webhook
Webhook menentukan handler callback HTTP yang dipicu oleh sebuah peristiwa. Untuk informasi tentang menyiapkan webhook, lihat Menyiapkan notifikasi menggunakan webhook.
Anda dapat menguji webhook dengan melakukan langkah-langkah berikut:
- Melihat jenis pemicu notifikasi webhook yang tersedia
- Lihat contoh payload permintaan untuk notifikasi webhook pengujian
- Menguji eksekusi webhook
Melihat jenis pemicu notifikasi webhook yang tersedia
Lihat jenis pemicu notifikasi webhook yang tersedia dengan mengeluarkan permintaan GET ke referensi berikut:
/organizations/{org_name}/webhooks/{webhook_id}/test/{developer_email_or_id}/{app_id}/{product_id}/{rateplan_id}
Dengan keterangan:
{org_name}
menentukan nama organisasi.{webhook_id}
menentukan ID webhook. Untuk melihat daftar webhook dan Untuk mendapatkan ID webhook, lihat Melihat semua webhook menggunakan Google Cloud Platform.{developer_email_or_id}
menentukan ID developer. Untuk melihat daftar developer, lihat Daftar Developer.{app_id}
menentukan ID aplikasi tempat Anda menguji webhook memicu. Untuk mencantumkan ID aplikasi di organisasi Anda, lihat Mencantumkan ID Aplikasi di Organisasi.{product_id}
menentukan ID produk API yang Anda uji webhook. Untuk melihat daftar produk API untuk organisasi, lihat Membuat Daftar Produk API.{rateplan_id}
menentukan ID paket tarif yang Anda uji webhook. ID paket tarif berbeda dengan nama tampilan. Untuk melihat paket tarif detail yang mencakup ID, lihat Mempelajari halaman paket tarif.
Misalnya, panggilan cURL berikut menampilkan RATEPLANQUOTAUSAGE
sebagai webhook
jenis pemicu notifikasi.
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 ini contoh responsnya:
[ "RATEPLANQUOTAUSAGE" ]
Selanjutnya, Anda perlu menentukan skema payload permintaan untuk notifikasi webhook jenis pemicu.
Melihat contoh payload permintaan untuk notifikasi webhook pengujian
Lihat contoh payload permintaan yang bisa digunakan 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 keterangan:
{org_name}
menentukan nama organisasi.{webhook_id}
menentukan ID webhook. Untuk melihat daftar webhook dan Untuk mendapatkan ID webhook, lihat Melihat semua webhook menggunakan Google Cloud Platform.{developer_email_or_id}
menentukan ID developer. Untuk melihat daftar developer, lihat Daftar Developer.{app_id}
menentukan ID aplikasi tempat Anda menguji webhook memicu. Untuk mencantumkan ID aplikasi di organisasi Anda, lihat Mencantumkan ID Aplikasi di Organisasi.{product_id}
menentukan ID produk API yang Anda uji webhook. Untuk melihat daftar produk API untuk organisasi, lihat Membuat Daftar Produk API.{rateplan_id}
menentukan ID paket tarif yang Anda uji webhook. ID paket tarif berbeda dengan nama tampilan. Untuk melihat paket tarif detail yang mencakup ID, lihat Mempelajari halaman paket tarif.{trigger_type}
menentukan nama jenis pemicu notifikasi webhook ditampilkan di langkah sebelumnya (Cantumkan webhook yang tersedia jenis pemicu notifikasi).
Misalnya, panggilan cURL berikut menampilkan contoh payload permintaan untuk
RATEPLANQUOTAUSAGE
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/RATEPLANQUOTAUSAGE" \ -u email:password
Berikut ini contoh payload permintaan:
{ "eventTriggerReason": "RATEPLANQUOTAUSAGE", "properties": [ { "key": "quotaPercentUsed", "value": "100" } ] }
Selanjutnya, Anda akan mengubah contoh payload permintaan yang ditampilkan, sesuai keinginan, dan menggunakannya untuk menguji dan menjalankan webhook.
Menguji eksekusi webhook
Uji eksekusi webhook dengan mengeluarkan permintaan POST ke resource berikut:
/organizations/{org_name}/webhooks/{webhook_id}/test/{developer_email_or_id}/{app_id}/{product_id}/{rateplan_id}
.
Dengan keterangan:
{org_name}
menentukan nama organisasi.{webhook_id}
menentukan ID webhook. Untuk melihat daftar webhook dan Untuk mendapatkan ID webhook, lihat Melihat semua webhook menggunakan Google Cloud Platform.{developer_email_or_id}
menentukan ID developer. Untuk melihat daftar developer, lihat Daftar Developer.{app_id}
menentukan ID aplikasi tempat Anda menguji webhook memicu. Untuk mencantumkan ID aplikasi di organisasi Anda, lihat Mencantumkan ID Aplikasi di Organisasi.{product_id}
menentukan ID produk API yang Anda uji webhook. Untuk melihat daftar produk API untuk organisasi, lihat Membuat Daftar Produk API.{rateplan_id}
menentukan ID paket tarif yang Anda uji memicu webhook. ID paket tarif berbeda dengan nama tampilan. Untuk melihat paket tarif detail yang mencakup ID, lihat Mempelajari halaman paket tarif.
Ubah payload permintaan contoh yang ditampilkan di langkah sebelumnya (Melihat contoh payload permintaan untuk pengujian notifikasi webhook) sebagai diinginkan, dan meneruskannya dalam payload permintaan.
Misalnya, panggilan cURL berikut menguji eksekusi webhook tertentu:
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 ini contoh respons yang menunjukkan bahwa notifikasi telah 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. Sebagai informasi tentang cara menyiapkan notifikasi, lihat Menyiapkan notifikasi
Untuk setiap notifikasi yang dikirim, informasi berikut akan disimpan:
- Coba hitung lagi
- Response code
- Header respons
- Konten tanggapan (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 mengeluarkan permintaan GET ke referensi berikut:
/organizations/{org_name}/notification-service-items
Tempat {org_name}
menentukan nama organisasi.
Anda juga 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 tempat notifikasi dikirim. |
Maksimal 1.000 notifikasi yang ditampilkan.
Dalam respons, flag hasMoreItems
menunjukkan apakah jumlah
pemberitahuan dalam daftar yang ditentukan berjumlah lebih dari 1.000. Jika hasMoreItems
adalah
true
, menunjukkan bahwa ada lebih banyak notifikasi daripada yang dapat ditampilkan, dan Anda
ingin melihat notifikasi yang tersisa, Anda perlu menyaring filter parameter kueri
untuk memproses kelompok notifikasi yang lebih kecil per permintaan. Misalnya, Anda dapat
membuat beberapa
permintaan yang menggunakan beberapa rentang tanggal yang lebih kecil, atau mengembalikan notifikasi hanya dengan status tertentu
masing-masing.
Misalnya, panggilan cURL berikut mencantumkan notifikasi yang FAILED untuk webhook 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 ini contoh responsnya:
{ "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 mengajukan permintaan GET ke referensi:
/organizations/{org_name}/notification-service-items/{notification_id}
Dengan keterangan:
{org_name}
menentukan nama organisasi.{notification_id}
menentukan ID notifikasi yang ingin Anda tampilkan detail. Anda bisa mendapatkan ID notifikasi dari output respons saat melihat notifikasi yang dikirim.
Misalnya, detail daftar panggilan cURL berikut 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 ini contoh responsnya:
{ "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
Proses ulang notifikasi dengan mengeluarkan permintaan POST ke resource berikut:
/organizations/{org_name}/notification-service-items/{notification_id}/reprocess
Dengan keterangan:
{org_name}
menentukan nama organisasi.{notification_id}
menentukan ID item notifikasi yang Anda inginkan untuk menampilkan detail. Anda bisa mendapatkan 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 }