Webhook

Webhook là cơ chế giúp hệ thống tự động gửi dữ liệu đến một URL khi có sự kiện xảy ra. Tìm hiểu webhook là gì, cách hoạt động, ví dụ thực tế và khác gì API polling.

Webhook

Webhook là gì?

Webhook là một cơ chế tự động gửi dữ liệu từ hệ thống này sang hệ thống khác khi có sự kiện xảy ra. Nó hoạt động bằng cách gọi một URL (gọi là webhook URL) và đẩy dữ liệu đi ngay lập tức – thường dưới dạng JSON.

Nói cách khác: thay vì bạn phải “hỏi” liên tục xem có gì mới chưa (polling), thì webhook sẽ tự “gọi” bạn khi có chuyện.

Webhook hoạt động như thế nào?

  • Bạn đăng ký một webhook URL (ví dụ: https://example.com/hook)
  • Hệ thống A (như Stripe, Discord, Zalo OA…) sẽ gọi POST đến URL đó khi có sự kiện
  • Dữ liệu được gửi theo định dạng JSON hoặc form-data
  • Server B nhận dữ liệu và xử lý ngay lập tức (gửi email, cập nhật DB, kích hoạt lệnh…)

Ví dụ thực tế về webhook

Tình huống Webhook gửi từ Webhook dùng để
Người dùng thanh toán Stripe Gửi về site để kích hoạt đơn hàng
Khách nhắn tin vào Zalo OA Zalo API Gửi dữ liệu về bot để phản hồi tự động
Có bình luận mới trên blog WordPress Push thông báo lên Discord
Form được submit Google Forms (qua bên thứ ba) Gửi vào Notion hoặc Google Sheets

Webhook khác gì với API thông thường?

Tiêu chí API (Polling) Webhook
Chủ động Client phải tự hỏi liên tục Server gửi dữ liệu chủ động khi có sự kiện
Độ trễ Cao (tùy tốc độ hỏi) Thấp (gần như tức thì)
Tiết kiệm tài nguyên Không (gây tải server nếu hỏi nhiều) Có (chỉ gửi khi cần)

Cách tạo và sử dụng webhook

  1. Tạo một URL endpoint nhận dữ liệu (POST)
  2. Đăng ký URL đó trong hệ thống hỗ trợ webhook
  3. Xử lý dữ liệu JSON được gửi về → lưu DB, gửi mail, thông báo, v.v.

Ví dụ webhook handler đơn giản (PHP)

<?php
// webhook.php
$data = json_decode(file_get_contents('php://input'), true);
file_put_contents('log.txt', print_r($data, true), FILE_APPEND);
?>

Bảo mật webhook

  • Dùng secret token để xác thực request
  • Giới hạn IP gọi đến
  • Validate data format và content-type

Kết luận

Webhook là cầu nối tự động giữa các hệ thống – giúp mọi thứ “diễn ra ngay lập tức mà không cần hỏi đi hỏi lại”. Nó là nền tảng của tự động hóa, realtime, và tích hợp hiện đại. Dù bạn làm dev hay không, hiểu webhook sẽ giúp bạn kết nối mọi nền tảng dễ dàng hơn.

Bình luận


  • Không có bình luận.

Init Toolbox

Nhấn Ctrl + \ trên máy tính, hoặc vuốt sang trái ở bất kỳ đâu trên mobile.

Đăng nhập





Đang tải...