Menyiapkan notifikasi menggunakan webhook

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

Apa yang dimaksud dengan webhook?

Webhook menentukan handler callback HTTP yang dipicu oleh peristiwa. Anda dapat membuat webhook dan mengonfigurasinya untuk menangani notifikasi peristiwa, sebagai alternatif untuk menggunakan template notifikasi monetisasi, seperti yang dijelaskan dalam Menyiapkan notifikasi menggunakan template notifikasi.

Untuk menyiapkan notifikasi menggunakan webhook, selesaikan langkah-langkah berikut menggunakan UI Pengelolaan Edge, atau Management and Monetization API:

  1. Tambahkan webhook yang menentukan pengendali callback untuk peristiwa notifikasi menggunakan UI atau API.
  2. Siapkan handler callback.
  3. Siapkan notifikasi untuk paket tarif yang dapat disesuaikan menggunakan UI atau API.

Mengelola webhook

Tambahkan dan kelola webhook yang menentukan pengendali callback untuk peristiwa notifikasi menggunakan UI atau API.

Mengelola webhook menggunakan UI

Tambahkan dan kelola webhook yang menentukan pengendali callback untuk peristiwa notifikasi menggunakan UI, seperti yang dijelaskan di bagian berikut.

Menjelajahi halaman Webhook

Akses halaman Webhook, seperti yang dijelaskan di bawah.

Edge

Untuk mengakses halaman Webhook menggunakan UI Edge:

  1. Login ke apigee.com/edge.
  2. Pilih Publish > Monetization > Webhooks di menu navigasi sebelah kiri.

Halaman Webhook akan ditampilkan.

Seperti yang ditandai dalam gambar, halaman Webhook memungkinkan Anda untuk:

Classic Edge (Private Cloud)

Untuk mengakses halaman Webhook menggunakan UI Classic Edge:

  1. Login ke http://ms-ip:9000, dengan ms-ip adalah alamat IP atau nama DNS dari node Server Pengelolaan.
  2. Pilih Admin > Webhooks.

Halaman Webhook akan ditampilkan.

Halaman Webhook memungkinkan Anda untuk:

Menambahkan webhook menggunakan UI

Untuk menambahkan webhook menggunakan UI:

  1. Akses halaman Webhook.
  2. Klik + Webhook.
  3. Masukkan informasi berikut (semua kolom wajib diisi).
    Kolom Deskripsi
    Nama Nama webhook.
    URL URL handler callback yang akan dipanggil saat notifikasi peristiwa di picu. Lihat Menyiapkan pengendali callback.
  4. Klik Simpan.

Webhook ditambahkan ke daftar dan diaktifkan secara default.

Mengedit webhook menggunakan UI

Untuk mengedit webhook menggunakan UI:

  1. Akses halaman Webhook.
  2. Arahkan kursor ke webhook yang ingin Anda edit, lalu klik di menu tindakan.
  3. Edit kolom webhook, sesuai kebutuhan.
  4. Klik Update Webhook.

Mengaktifkan atau menonaktifkan webhook menggunakan UI

Untuk mengaktifkan atau menonaktifkan webhook menggunakan UI:

  1. Akses halaman Webhook.
  2. Arahkan kursor ke webhook dan aktifkan atau nonaktifkan tombol status untuk mengaktifkan atau menonaktifkannya.

Menghapus webhook menggunakan UI

Untuk menghapus webhook menggunakan UI:

  1. Akses halaman Webhook.
  2. Arahkan kursor ke webhook yang ingin dihapus, lalu klik .

Webhook akan dihapus dan tidak tersedia lagi dalam daftar.

Mengelola webhook menggunakan API

Tambahkan dan kelola webhook menggunakan API seperti yang dijelaskan di bagian berikut.

Melihat semua webhook menggunakan API

Lihat semua webhook dengan mengirimkan permintaan GET ke /mint/organizations/{org_name}/webhooks. Contoh:

curl -X GET "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks" \
  -H "Content-Type: application/json " \
  -u email:password

Berikut adalah contoh respons yang ditampilkan:

{
  "totalRecords": 2,
  "webhooks": [
    {
      "created": 1460162656342,
      "enabled": false,
      "id": "21844a37-d26d-476c-93ed-38f3a4b24691",
      "name": "webhook1",
      "postUrl": "http://mycompany.com/callbackhandler1",
      "updated": 1460162656342,
      "updatedBy": "joe@example.com"
    },
        {
      "created": 1460138724352,
      "createdBy": "joe@example.com",
      "enabled": true,
      "id": "a39ca777-1861-49cf-a397-c9e92ab3c09f",
      "name": "webhook2",
      "postUrl": "http://mycompany.com/callbackhandler2",
      "updated": 1460138724352,
      "updatedBy": "joe@example.com"
    }

  ]
}

Melihat webhook menggunakan API

Lihat satu webhook dengan mengirimkan permintaan GET ke /mint/organizations/{org_name}/webhooks/{webhook_id}.

Contoh:

curl -X GET "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks/21844a37-d26d-476c-93ed-38f3a4b24691" \
  -H "Content-Type: application/json " \
  -u email:password

Berikut adalah contoh respons:

{
   "created": 1460162656342,
   "enabled": false,
   "id": "21844a37-d26d-476c-93ed-38f3a4b24691",
   "name": "webhook1",
   "postUrl": "http://mycompany.com/callbackhandler1",
   "updated": 1460162656342,
   "updatedBy": "joe@example.com"
 }

Menambahkan webhook menggunakan API

Tambahkan webhook dengan mengirimkan permintaan POST ke /mint/organizations/{org_name}/webhooks. Anda harus meneruskan nama webhook dan URL handler callback yang akan dipanggil saat notifikasi peristiwa dipicu.

Misalnya, berikut membuat webhook bernama webhook3 dan menetapkan callbackhandler3 ke webhook:

curl -X POST "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks"
  -H "Content-Type: application/json "
  -d '{
    "name": "webhook3",
    "postURL": "http://mycompany.com/callbackhandler3"
    }' \
    -u email:password

Berikut adalah contoh respons:

{
  "created": 1460385534555,
  "createdBy": "joe@example.com",
  "enabled": false,
  "id": "0a07eb1f-f485-4539-8beb-01be449699b3",
  "name": "webhook3",
  "orgId": "myorg",
  "postUrl": "http://mycompany.com/callbackhandler3",
  "updated": 1460385534555,
  "updatedBy": "joe@example.com"
}

Mengedit webhook menggunakan API

Edit webhook dengan mengirimkan permintaan PUT ke /mint/organizations/{org_name}/webhooks/{webhook_id}. Teruskan pembaruan di isi permintaan.

Misalnya, berikut memperbarui handler callback yang terkait dengan webhook1:

curl -X PUT "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks/0a07eb1f-f485-4539-8beb-01be449699b3" \
  -H "Content-Type: application/json " \
  -d '{
    "postURL": "http://mycompany.com/callbackhandler4"
  }' \
  -u email:password

Berikut adalah contoh respons:

{
  "created": 1460385534555,
  "enabled": false,
  "id": "0a07eb1f-f485-4539-8beb-01be449699b3",
  "name": "webhook3",
  "orgId": "myorg",
  "postUrl": "http://mycompany.com/callbackhandler4",
  "updated": 1460385534555,
  "updatedBy": "joe@example.com"
}

Mengaktifkan atau menonaktifkan webhook menggunakan API

Aktifkan atau nonaktifkan webhook dengan mengirimkan permintaan POST ke /mint/organizations/{org_name}/webhooks/{webhook_id}, seperti yang Anda lakukan saat memperbarui webhook, dan tetapkan atribut yang diaktifkan di isi permintaan ke benar atau salah. Jika Anda menonaktifkan webhook, webhook tersebut tidak akan dipicu saat peristiwa terjadi.

Misalnya, berikut mengaktifkan webhook3:

curl -X POST "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks/0a07eb1f-f485-4539-8beb-01be449699b3" \
  -H "Content-Type: application/json " \
  -d '{
    "enabled": "true"
  }' \
  -u email:password

Berikut adalah contoh respons:

{
  "created": 1460385534555,
  "enabled": true,
  "id": "0a07eb1f-f485-4539-8beb-01be449699b3",
  "name": "webhook3",
  "orgId": "myorg",
  "postUrl": "http://mycompany.com/callbackhandler4",
  "updated": 1460385534555,
  "updatedBy": "joe@example.com"
}

Menghapus webhook menggunakan API

Hapus webhook dengan mengirimkan permintaan DELETE ke /mint/organizations/{org_name}/webhooks/{webhook_id}.

Untuk menentukan apakah akan memaksa penghapusan webhook jika ada proses yang sedang berlangsung, tetapkan parameter kueri forceDelete ke true atau false. Parameter kueri forceDelete diaktifkan (true) secara default.

Misalnya, berikut menghapus webhook3:

curl -X DELETE "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks/21844a37-d26d-476c-93ed-38f3a4b24691" \
  -H "Content-Type: application/json " \
  -u email:password

Menyiapkan handler callback

Berikut menunjukkan format permintaan JSON yang dikirim ke handler callback yang ditentukan oleh webhook saat notifikasi peristiwa dipicu. Anda harus memastikan bahwa pengendali callback memproses permintaan dengan tepat.

{
        "orgName": "{org_id}",
        "developerEmail": "{dev_email}",
        "developerFirstName": "{first_name}",
        "developerLastName": "{last_name}",
        "companyName": "{company_name}",
        "applicationName": "{app_name}",
        "packageName": "{api_package_name}",
        "packageId": "{api_package_id}",
        "ratePlanId": "{rateplan_id}",
        "ratePlanName": "{rateplan_name}",
        "ratePlanType": "{rateplan_type}",
        "developerRatePlanQuotaTarget": {quota_target},
        "quotaPercentUsed": {percentage_quota_used},
        "ratePlanStartDate": {rateplan_startdate}, 
        "ratePlanEndDate": {rateplan_enddate},
        "nextBillingCycleStartDate": {next_billing_cycle_startdate},
        "products": ["{api_product_name}","{api_product_name}"],
        "developerCustomAttributes": [],
        "triggerTime": {trigger_time},
        "triggerReason": "{trigger_reason}",
        "developerQuotaResetDate": "{devquota_resetdate}"
}

Menyiapkan notifikasi untuk paket tarif yang dapat disesuaikan

Siapkan notifikasi menggunakan webhook untuk paket tarif yang dapat disesuaikan menggunakan UI atau API.

Menyiapkan notifikasi untuk paket tarif yang dapat disesuaikan menggunakan UI

Siapkan notifikasi menggunakan webhook untuk paket tarif yang dapat disesuaikan menggunakan UI, seperti yang dijelaskan di bawah.

Mengakses dialog Notifikasi untuk paket tarif yang dapat disesuaikan

Akses dialog Notifikasi untuk paket tarif yang dapat disesuaikan, seperti yang dijelaskan di bawah.

Edge

Untuk mengakses dialog notifikasi menggunakan UI Edge:

  1. Buat dan publikasikan paket tarif notifikasi yang dapat disesuaikan, seperti yang dijelaskan dalam Menentukan detail paket notifikasi yang dapat disesuaikan.
  2. Akses halaman Paket Tarif dengan memilih Publish > Monetization > Rate Plans di menu navigasi sebelah kiri.
  3. Arahkan kursor ke paket tarif Notifikasi yang dapat disesuaikan yang dipublikasikan untuk menampilkan tindakan.
  4. Klik +Notify.

    Dialog Notifikasi akan ditampilkan.

    Catatan: Paket tarif harus dipublikasikan agar tindakan +Notify ditampilkan.

Classic Edge (Private Cloud)

Untuk mengakses halaman Notifikasi:

  1. Buat paket tarif notifikasi yang dapat disesuaikan, seperti yang dijelaskan dalam Menentukan detail paket notifikasi yang dapat disesuaikan.
  2. Pilih Publish > Packages untuk melihat paket tarif.
  3. Klik +Notify di kolom Actions untuk paket tarif.

    Dialog Notifikasi akan ditampilkan.

Menambahkan notifikasi untuk paket tarif yang dapat disesuaikan menggunakan UI

Untuk menambahkan notifikasi untuk paket tarif yang dapat disesuaikan menggunakan UI:

  1. Akses dialog Notifikasi.
  2. Tetapkan kondisi notifikasi di bagian Notification Intervals dengan menentukan persentase jumlah transaksi target pada waktu notifikasi akan dipicu. Secara khusus:
    • Untuk menetapkan persentase yang tepat, masukkan persentase di kolom At/From % dan kosongkan kolom To %.
    • Untuk menetapkan rentang persentase, masukkan persentase awal dan akhir di kolom At/From % dan To %, serta nilai inkremen di kolom Step %. Secara default, notifikasi dikirim dalam inkremen 10% dalam rentang yang ditentukan.

    Kolom Notify At diperbarui untuk mencerminkan setiap persentase jumlah transaksi target yang akan memicu peristiwa.

  3. Untuk menetapkan kondisi notifikasi tambahan, klik +Add dan ulangi langkah 4.
  4. Tetapkan tindakan notifikasi di bagian Webhooks dengan memilih satu atau beberapa webhook untuk mengelola penanganan callback saat notifikasi dipicu.
  5. Klik Create Notification.

Mengedit notifikasi untuk paket tarif yang dapat disesuaikan menggunakan UI

Untuk mengedit notifikasi untuk paket tarif yang dapat disesuaikan menggunakan UI:

  1. Akses dialog Notifikasi.
  2. Klik +Notify di kolom Actions untuk paket tarif.
  3. Klik Edit.
  4. Ubah nilai, sesuai kebutuhan.
  5. Klik Save Notification.

Menghapus notifikasi untuk paket tarif yang dapat disesuaikan menggunakan UI

Untuk menghapus kondisi dan tindakan notifikasi:

  1. Akses dialog Notifikasi.
  2. Klik +Notify di kolom Actions untuk paket tarif.
  3. Klik Delete Notification.

Menyiapkan notifikasi untuk paket tarif yang dapat disesuaikan menggunakan API

Untuk menyiapkan notifikasi untuk paket tarif yang dapat disesuaikan menggunakan API, gunakan prosedur yang dijelaskan dalam Mengelola kondisi dan tindakan notifikasi menggunakan API dan gunakan atribut yang dijelaskan di bagian ini.

Untuk menyiapkan kondisi notifikasi (notificationCondition), gunakan nilai atribut berikut. Untuk mengetahui informasi selengkapnya, lihat Properti konfigurasi untuk kondisi notifikasi.

Atribut Nilai
RATEPLAN ID paket tarif notifikasi yang dapat disesuaikan.
PUBLISHED TRUE untuk menunjukkan bahwa paket tarif notifikasi yang dapat disesuaikan harus dipublikasikan.
UsageTarget Persentase jumlah transaksi target pada waktu notifikasi akan dipicu.

Atribut ini memungkinkan Anda memberi tahu developer saat mereka mendekati atau telah mencapai jumlah transaksi target untuk paket tarif kartu notifikasi yang dapat disesuaikan yang telah mereka beli. Misalnya, jika developer telah membeli paket tarif notifikasi yang dapat disesuaikan dan jumlah transaksi target untuk developer telah ditetapkan ke 1.000, Anda dapat memberi tahu mereka saat mereka mencapai 800 transaksi (80% dari jumlah transaksi target), 1.000 transaksi (100%), atau 1.500 transaksi (150%).

  • Untuk menetapkan persentase yang tepat, masukkan %= n. Misalnya, %= 80 akan mengirimkan notifikasi saat persentase jumlah transaksi target mencapai 80%.
  • Untuk menetapkan rentang persentase, masukkan persentase awal dan akhir, serta nilai yang akan diinkremenkan sebagai berikut: %= start to end by n. Misalnya, nilai %= 80 to 100 by 10 akan mengirimkan notifikasi saat persentase jumlah transaksi target mencapai 80%, 90%, dan 100%.

Untuk menyiapkan tindakan notifikasi, di bagian actions, tetapkan nilai berikut. Untuk mengetahui informasi selengkapnya, lihat Properti konfigurasi untuk tindakan notifikasi.

Atribut Nilai
actionAttribute WEBHOOK untuk memicu webhook.
value ID webhook yang Anda tentukan di bagian sebelumnya, Membuat webhook menggunakan API.

Berikut adalah contoh cara membuat kondisi notifikasi yang memicu webhook saat persentase jumlah transaksi target mencapai 80%, 90%, 100%, 110%, dan 120%.

{
    "notificationCondition": [
      {
        "attribute": "RATEPLAN",
        "value": "123456"
      },
      {
        "attribute": "PUBLISHED",
        "value": "TRUE"
      },
      {
        "attribute": "UsageTarget",
        "value": "%= 80 to 120 by 10"
      }
    } 
    ],
   "actions": [{
          "actionAttribute": "WEBHOOK",
          "value": "b0d77596-142e-4606-ae2d-f55c3c6bfebe",
        }]
  }

Untuk mengetahui informasi tentang cara melihat, memperbarui, dan menghapus kondisi dan tindakan notifikasi, lihat:

Kode respons webhook

Berikut adalah ringkasan kode respons webhook dan cara sistem menafsirkannya.

Kode Respons Deskripsi
2xx Berhasil
5xx

Permintaan gagal. Sistem akan mencoba lagi permintaan hingga tiga kali dalam interval 5 menit.

Catatan: Waktu tunggu baca dan koneksi untuk permintaan webhook masing-masing adalah 3 detik, yang dapat menyebabkan permintaan gagal.

Other response Permintaan gagal. Sistem tidak akan mencoba lagi permintaan.