Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Peringatan
ASP.NET WebHooks tidak digunakan lagi dan tidak akan lagi menerima pembaruan atau perbaikan keamanan.
WebHooks adalah pola HTTP ringan yang menyediakan model pub/sub sederhana untuk menghubungkan api Web dan layanan SaaS. Ketika peristiwa terjadi dalam layanan, pemberitahuan dikirim dalam bentuk permintaan HTTP POST kepada pelanggan terdaftar. Permintaan POST berisi informasi tentang peristiwa yang memungkinkan penerima untuk bertindak sesuai.
Karena kesederhanaannya, WebHook sudah diekspos oleh sejumlah besar layanan termasuk Dropbox, GitHub, Bitbucket, MailChimp, PayPal, Slack, Stripe, Trello, dan banyak lagi. Misalnya, WebHook dapat menunjukkan bahwa file telah berubah di Dropbox, atau perubahan kode telah dilakukan dalam GitHub, atau pembayaran telah dimulai di PayPal, atau kartu telah dibuat di Trello. Kemungkinannya tak ada habisnya!
Microsoft ASP.NET WebHooks memudahkan pengiriman dan penerimaan WebHook sebagai bagian dari aplikasi ASP.NET Anda:
Di sisi penerimaan, ini menyediakan model umum untuk menerima dan memproses WebHook dari sejumlah penyedia WebHook. Keluar dari kotak dengan dukungan untuk Dropbox, GitHub, Bitbucket, MailChimp, PayPal, Pusher, Salesforce, Slack, Stripe, Trello,WordPress dan Zendesk tetapi mudah untuk menambahkan dukungan untuk lebih banyak lagi.
Di sisi pengirim, layanan ini memberikan dukungan untuk mengelola dan menyimpan langganan serta untuk mengirim pemberitahuan peristiwa ke set pelanggan yang tepat. Ini memungkinkan Anda menentukan serangkaian peristiwa sendiri yang dapat diikuti oleh pelanggan dan memberi tahu mereka ketika peristiwa terjadi.
Dua bagian dapat digunakan bersama-sama atau terpisah tergantung pada skenario Anda. Jika Anda hanya perlu menerima WebHook dari layanan lain maka Anda hanya dapat menggunakan bagian penerima; jika Anda hanya ingin mengekspos WebHook untuk dikonsumsi orang lain, maka Anda dapat melakukannya.
Kode menargetkan API Web ASP.NET 2 dan ASP.NET MVC 5 dan tersedia sebagai OSS pada GitHub.
Gambaran Umum WebHooks
WebHooks adalah pola yang berarti bahwa itu bervariasi bagaimana itu digunakan dari layanan ke layanan tetapi ide dasarnya sama. Anda dapat menganggap WebHooks sebagai pub/sub model sederhana di mana pengguna dapat berlangganan peristiwa yang terjadi di tempat lain. Pemberitahuan peristiwa disebarluaskan sebagai permintaan HTTP POST yang berisi informasi tentang peristiwa itu sendiri.
Biasanya permintaan HTTP POST berisi objek JSON atau data formulir HTML yang ditentukan oleh pengirim WebHook termasuk informasi tentang peristiwa yang menyebabkan WebHook dipicu. Misalnya, isi permintaan Post WebHook dari GitHub terlihat seperti ini sebagai akibat dari masalah baru yang dibuka di repositori tertentu:
{
"action": "opened",
"issue": {
"url": "https://api.github.com/repos/octocat/Hello-World/issues/1347",
"number": 1347,
...
},
"repository": {
"id": 1296269,
"full_name": "octocat/Hello-World",
"owner": {
"login": "octocat",
"id": 1
...
},
...
},
"sender": {
"login": "octocat",
"id": 1,
...
}
}
Untuk memastikan bahwa WebHook memang berasal dari pengirim yang dimaksudkan, permintaan POST diamankan dalam beberapa cara lalu diverifikasi oleh penerima. Misalnya, GitHub WebHooks menyertakan X-Hub-Signature header HTTP dengan hash isi permintaan yang diperiksa oleh implementasi penerima sehingga Anda tidak perlu khawatir tentang hal itu.
Aliran WebHook umumnya berjalan seperti ini:
Pengirim WebHook mengekspos peristiwa yang dapat diikuti oleh klien. Peristiwa menjelaskan perubahan yang dapat diamati pada sistem, misalnya bahwa item data baru telah disisipkan, bahwa proses telah selesai, atau sesuatu yang lain.
Penerima WebHook berlangganan dengan mendaftarkan WebHook yang terdiri dari empat hal:
URI tempat pemberitahuan peristiwa harus diposting dalam bentuk permintaan HTTP POST;
Sekumpulan filter yang menjelaskan peristiwa tertentu di mana WebHook harus ditembakkan;
Kunci rahasia yang digunakan untuk menandatangani permintaan HTTP POST;
Data tambahan yang akan disertakan dalam permintaan HTTP POST. Ini misalnya dapat berupa bidang header HTTP tambahan atau properti yang disertakan dalam isi permintaan HTTP POST.
Setelah peristiwa terjadi, pendaftaran WebHook yang cocok ditemukan dan permintaan HTTP POST dikirimkan. Biasanya, pembuatan permintaan HTTP POST dicoba kembali beberapa kali jika karena alasan tertentu penerima tidak merespons atau permintaan HTTP POST menghasilkan respons kesalahan.
Sistem Pemrosesan WebHooks
Alur pemrosesan Microsoft ASP.NET WebHooks untuk WebHook masuk terlihat seperti ini:
Dua konsep kunci di sini adalah Penerima dan Pengendali.
Penerima bertanggung jawab untuk menangani jenis WebHook tertentu dari pengirim tertentu serta memberlakukan pemeriksaan keamanan guna memastikan bahwa permintaan WebHook memang berasal dari pengirim yang dimaksud.
Handler biasanya adalah tempat di mana kode pengguna berjalan untuk memproses WebHook tertentu.
Dalam simpul berikut, konsep-konsep ini dijelaskan dalam detail selengkapnya.