Menguji penyiapan notifikasi

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Pengantar

Monetisasi menyediakan sekumpulan API yang dapat Anda gunakan untuk menguji penyiapan notifikasi. Secara khusus, Anda dapat:

Menguji webhook

Webhook menentukan pengendali callback HTTP yang dipicu oleh sebuah peristiwa. Untuk informasi cara menyiapkan webhook, lihat Menyiapkan notifikasi menggunakan webhook.

Anda dapat menguji webhook dengan melakukan langkah-langkah berikut:

  1. Melihat jenis pemicu notifikasi webhook yang tersedia
  2. Lihat contoh payload permintaan untuk pengujian notifikasi webhook
  3. Menguji eksekusi webhook

Melihat jenis pemicu notifikasi webhook yang tersedia

Lihat jenis pemicu notifikasi webhook yang tersedia dengan mengajukan permintaan GET 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 mendapatkan ID webhook, lihat Melihat semua webhook menggunakan API.
  • {developer_email_or_id} menentukan ID developer. Untuk melihat daftar developer, lihat Developer Daftar.
  • {app_id} menentukan ID aplikasi yang Anda gunakan untuk menguji pemicu webhook. Untuk mencantumkan ID aplikasi di organisasi Anda, lihat Mencantumkan ID Aplikasi di Organisasi.
  • {product_id} menentukan ID produk API yang Anda uji pemicu webhook. Untuk melihat daftar produk API untuk organisasi, lihat Membuat Daftar Produk API.
  • {rateplan_id} menentukan ID paket tarif yang Anda uji pemicu webhook. ID paket tarif berbeda dari 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 responsnya:

[
  "RATEPLANQUOTAUSAGE"
]

Selanjutnya, Anda perlu menentukan skema payload permintaan untuk jenis pemicu notifikasi webhook.

Melihat contoh payload permintaan untuk pengujian notifikasi webhook

Lihat contoh payload permintaan yang dapat Anda gunakan untuk pengujian notifikasi webhook dengan mengajukan 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:

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 ini adalah contoh payload permintaan:

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

Selanjutnya, ubah payload permintaan contoh yang ditampilkan, sesuai keinginan, dan gunakan untuk menguji eksekusi 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 mendapatkan ID webhook, lihat Melihat semua webhook menggunakan API.
  • {developer_email_or_id} menentukan ID developer. Untuk melihat daftar developer, lihat Developer Daftar.
  • {app_id} menentukan ID aplikasi yang Anda gunakan untuk menguji pemicu webhook. Untuk mencantumkan ID aplikasi di organisasi Anda, lihat Mencantumkan ID Aplikasi di Organisasi.
  • {product_id} menentukan ID produk API yang Anda uji pemicu webhook. Untuk melihat daftar produk API untuk organisasi, lihat Membuat Daftar Produk API.
  • {rateplan_id} menentukan ID paket tarif yang Anda uji pemicu webhook. ID paket tarif berbeda dari nama tampilan. Untuk melihat detail paket tarif termasuk ID, lihat Menjelajahi halaman paket tarif.

Ubah payload permintaan sampel yang ditampilkan pada langkah sebelumnya (Lihat contoh payload permintaan untuk pengujian notifikasi webhook) seperti yang diinginkan, dan teruskan dalam 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 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 akan disimpan:

  • Coba hitung lagi
  • Kode respons
  • Header respons
  • Konten respons (hanya 1.000 karakter pertama)

Anda dapat melihat dan memproses ulang notifikasi dengan melakukan langkah-langkah berikut:

  1. Melihat notifikasi yang telah dikirim
  2. Melihat detail notifikasi
  3. Memproses ulang notifikasi

Melihat notifikasi yang dikirim

Lihat notifikasi yang telah dikirim untuk organisasi dengan mengajukan permintaan GET ke resource berikut:

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

Dengan {org_name}, Anda menentukan nama organisasi.

Atau, 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:
  • BLANK_MESSAGE
  • DUPLICATE
  • FAILED
  • NOTIFICATION_SENT
  • OPT_OUT
  • QUEUED
  • TEMPLATE_NOT_FOUND
toemail ID email atau webhook tempat notifikasi dikirim.

Maksimum 1.000 notifikasi ditampilkan.

Dalam respons, flag 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 harus menyaring filter parameter kueri untuk memproses kelompok 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 FAILED untuk webhook yang ditentukan 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 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 resource berikut:

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

Dengan keterangan:

  • {org_name} menentukan nama organisasi.
  • {notification_id} menentukan ID notifikasi yang ingin Anda tampilkan detailnya. Anda bisa mendapatkan 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 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 ingin Anda tampilkan detailnya. 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
}