Memeriksa integrasi eksternal

Toko pakaian daring "Lemari Hangat" telah menyiapkan sebuah Webhook (integrasi yang mengirim notifikasi ke program luar ketika terjadi perubahan pada konten) yang secara otomatis memberi tahu bot notifikasi internal setiap kali sebuah produk baru didaftarkan. Namun suatu hari penanggung jawabnya berkata, "Akhir-akhir ini notifikasi produk baru sama sekali tidak datang." Hal pertama yang harus dipastikan adalah apakah notifikasi memang tidak terkirim, atau terkirim tetapi terlewat di sisi bot.

Webhook adalah perangkat yang berjalan dengan sendirinya begitu dibuat, jadi biasanya tidak perlu diperhatikan. Namun program luar yang menerima notifikasi berada di luar jangkauan kita, sehingga suatu saat akan tiba hari ketika program itu tidak merespons atau mengembalikan kesalahan. Halaman ini membahas cara memastikan apakah Webhook yang telah disiapkan berjalan dengan baik, serta cara menemukan panggilan yang gagal dan menanganinya sesuai penyebabnya, dalam bentuk resep per situasi.

Apa itu Webhook dan cara membuat, menyalakan, mematikan, serta mengubahnya dibahas di Webhook. Di sini kita berfokus pada sisi mengoperasikan dan memeriksa Webhook yang sudah dibuat.

Apa yang tercatat dalam riwayat panggilan

Setiap kali Webhook mengirim permintaan ke program luar, setiap panggilan tersebut tercatat dalam riwayat panggilan. Setiap catatan memuat hal berikut.

  • Kapan dikirim, dan berapa lama waktu pemrosesannya
  • Perubahan apa yang memicu pengiriman (misalnya, pendaftaran produk)
  • Ke alamat mana dikirim
  • Kode respons yang dikembalikan program luar (angka hasil yang menunjukkan bagaimana permintaan diproses)
  • Apakah panggilan tersebut berhasil atau gagal

Riwayat panggilan terdiri dari dua lapis. Pertama, ada daftar yang menampilkan panggilan secara urut waktu, dan ketika Anda membuka salah satu entri dari daftar itu, muncul detail panggilan tersebut. Pada detail, Anda dapat melihat langsung permintaan yang benar-benar kita kirim dan respons yang dikembalikan program luar.

Ketika Anda menekan nama pada daftar Webhook, layar detail terbuka, dan daftar ini muncul di tab Log panggilan di bagian atas. Catatan yang dikirim Bot Notifikasi Produk Baru milik "Lemari Hangat" setiap kali sebuah produk didaftarkan tampak seperti ini.

Tab Log panggilan pada detail Webhook. Pada kolom Dipanggil pada, Hasil panggilan, Aksi event, Durasi, dan ID permintaan tercampur dua kode respons berhasil dan satu kode respons gagal

Pada daftar, setiap baris menampilkan Dipanggil pada, Hasil panggilan (kode respons), perubahan apa yang memanggil panggilan ini (Aksi event), waktu yang dibutuhkan (Durasi), dan ID permintaan yang menunjuk panggilan tersebut. Ke alamat mana dikirim dan apa yang dipertukarkan baru terlihat setelah Anda menekan baris itu untuk membuka detailnya. Dengan kolom Hasil, Anda juga dapat menyaring hanya panggilan yang berhasil atau hanya yang gagal. Jika daftar terlihat usang, Anda dapat memuatnya ulang dengan Segarkan Log di kanan atas.

Catatan tidak tersimpan lama. Catatan panggilan yang berhasil hilang setelah 1 jam, dan catatan panggilan yang gagal hilang setelah 3 hari. Yang gagal dibiarkan lebih lama karena pekerjaan menelusuri penyebab nanti muncul dari kegagalan. Karena itu, "notifikasi yang kemarin terkirim dengan baik" bisa jadi sudah tidak ada di daftar, dan hal itu tidak berarti notifikasinya tidak terkirim. Jika riwayat pengiriman perlu disimpan lama, tinggalkanlah pada program di sisi penerima.

Berhasil atau gagal ditentukan oleh kode respons. Jika kode respons berada dalam rentang normal (umumnya kisaran 200 dan 300), panggilan dicatat sebagai berhasil; jika angkanya di luar itu, dicatat sebagai gagal. Jika program luar sama sekali tidak merespons, atau respons yang dikembalikan terlalu besar, panggilan tersebut juga tetap tercatat sebagai gagal.

Memastikan notifikasi terkirim dengan baik

Untuk memastikan apakah perkataan penanggung jawab itu benar, pertama-tama lihat berapa persen dari panggilan yang selama ini dikirim Webhook ini berhasil. Tingkat keberhasilan panggilan langsung terlihat pada daftar Webhook.

  1. Buka layar Webhook di pengaturan Space toko pakaian.
  2. Pada daftar, periksa kolom Panggilan berhasil (%) di baris Bot Notifikasi Produk Baru.

Misalnya, tampil seperti "66.67%". Jika 100%, berarti semua panggilan yang dikirim selama ini berhasil, dan dalam hal itu yang melewatkan adalah botnya. Jika lebih rendah dari 100%, artinya notifikasi itu sendiri pernah tersendat saat dikirim, jadi penyebabnya kita cari di bagian berikutnya.

Daftar Webhook. Pada kolom Nama, URL, Status, dan Panggilan berhasil (%), "Bot Notifikasi Produk Baru" terlihat dalam status Active dengan tingkat keberhasilan panggilan 66.67%

Jika belum ada satu pun panggilan yang dikirim selama ini, berarti notifikasi bukan gagal, melainkan memang tidak pernah terkirim. Ini terjadi ketika Webhook dalam keadaan mati (Inactive), atau ketika selama itu tidak ada perubahan yang cocok dengan kondisi yang telah Anda pasang. Dalam hal ini, periksa di Webhook apakah ia menyala dan diatur untuk menanggapi perubahan yang mana.

Menemukan penyebab panggilan yang gagal

Jika terlihat kegagalan, buka satu panggilan tersebut untuk melihat apa yang salah. Pada detail, permintaan yang kita kirim dan respons yang dikembalikan program luar ditampilkan bersama.

  1. Pada tab Log panggilan milik Bot Notifikasi Produk Baru, tekan baris yang hasilnya gagal. Detail panggilan itu akan terbuka.
  2. Pada Request, periksa ke alamat mana dan isi apa yang dikirim.
  3. Periksa kode respons pada Status di bagian atas, dan isi yang dikembalikan program luar pada Response. Pada Sumber daya · Aksi muncul pula perubahan apa yang memanggil panggilan ini.

Detail panggilan Webhook. Tampilan dengan Dipanggil pada, ID permintaan, Status, Durasi, dan Sumber daya · Aksi di bagian atas, sedangkan di bawahnya Request dan Response terlihat berdampingan dalam bentuk header dan body

Kode respons dan isi yang dikembalikan memberi tahu penyebabnya. Jika kode respons berada dalam rentang gagal, berarti program luar menerima permintaan tetapi gagal saat memprosesnya, dan dalam kasus ini penyebabnya sering tertulis pada isi yang dikembalikan. Jika sama sekali tidak ada respons atau alamatnya tidak ditemukan, bisa jadi alamat tujuan telah berubah atau programnya sedang mati.

Jika Anda ingin meneruskan panggilan ini apa adanya kepada penanggung jawab program luar, Anda dapat menyalinnya dalam bentuk yang bisa mereproduksi panggilan ini menggunakan Salin cURL di kanan atas, lalu mengirimkannya. Jika ingin menyerahkan seluruh catatan sebagai berkas, gunakan Unduh .json.

Permintaan yang dikirim juga memuat header yang kita sertakan. Di antaranya, yang telah ditetapkan sebagai nilai rahasia (misalnya, nilai kunci yang dipakai untuk mengakses program luar) tampil tersamarkan dengan tanda bintang di layar. Nilai aslinya tidak terungkap, jadi Anda dapat memeriksa detailnya dengan tenang.

Menangani saat terjadi kegagalan

Ada satu hal yang perlu diketahui lebih dahulu. Panggilan yang gagal tidak dikirim ulang secara otomatis. Notifikasi yang sekali gagal hanya tersisa apa adanya di riwayat; Webhook tidak mengirimkannya kembali dengan sendirinya. Karena itu, penanganannya terbagi menjadi dua jalur. Yaitu memperbaiki penyebab agar notifikasi berikutnya terkirim dengan normal, dan menangani sendiri kasus yang sudah gagal dan terlewat oleh bot.

Berdasarkan apa yang Anda lihat pada detail, berikut adalah penyebab yang perlu ditelusuri beserta penanganannya.

Yang terlihat pada detailPenyebab yang perlu ditelusuriPenanganan
Kode respons dalam rentang gagal beserta isi kesalahannyaProgram luar gagal saat memproses permintaanTeruskan isi respons yang dikembalikan apa adanya kepada penanggung jawab program luar agar mereka memperbaikinya
Tidak ada respons atau alamat tidak ditemukanAlamat tujuan telah berubah atau program sedang matiPeriksa apakah alamatnya benar, dan jika berubah, ubah Webhook
Panggilan itu sendiri tidak tercatatWebhook dalam keadaan mati (Inactive)Nyalakan kembali Webhook
Tercatat sebagai gagal dan respons yang dikembalikan sangat besarIsi yang dikembalikan program luar terlalu besarSesuaikan sisi program luar agar mengurangi isi yang dikembalikan

Cara memperbaiki alamat atau menyalakan kembali Webhook dibahas di Webhook.

Meskipun penyebabnya sudah diperbaiki, notifikasi yang gagal selama itu tidak akan terkirim ulang dengan sendirinya. Anda dapat memeriksa masing-masing panggilan yang gagal itu terkait pendaftaran produk yang mana dari isi yang dikirim pada detail panggilan tersebut, jadi untuk produk-produk itu, beri tahu langsung penanggung jawab bot untuk menutup pemrosesan yang terlewat.

Langkah berikutnya

  • Webhook: Membahas apa itu Webhook, serta cara membuatnya, menyalakan, mematikan, dan mengubah alamat serta kondisinya.
  • Webhook (Referensi API): Membahas endpoint yang dipakai untuk menelusuri status panggilan dan riwayat pengiriman dari dalam program.