Bạn có bao giờ thắc mắc làm cách nào mà website lại ghi nhận được thời gian thực tại mỗi sự kiện diễn ra trên trang web của mình hay chưa? Để làm được điều này, chúng ta sẽ cần một tính năng bổ trợ gọi là webhook. Bài viết dưới đây chúng ta sẽ cùng tìm hiểu webhook là gì? Những khái niệm về webhook và những lưu ý về webhook.
1. Webhook là gì?
Webhook là gì? Webhook hay còn được biết đến với tên gọi HTTP push API là một trong những tính năng ưu việt được sử dụng trong việc triển khai phản ứng sự kiện. Vai trò của webhook là thông báo cho khách hàng tất cả những sự kiện đang phát sinh từ phía máy chủ. Chính nhờ ưu điểm này, phía khách hàng sẽ không cần mất thời gian để kiểm tra lại trên máy chủ như trước đây nữa.
Không giống các API thông thường, để đảm tất cả sự kiện đang diễn ra được chính xác nhất, webhook sẽ phải thường xuyên thăm dò dữ liệu, kiểm tra xem website có gì mới hay không? Có gì thay đổi…Từ tất cả những dữ liệu đã thu thập được, phía máy chủ sẽ tự động thông báo đến người dùng để cập nhật thông tin nhanh nhất có thể.
Để hiểu rõ hơn webhook là gì, chúng ta sẽ lấy một ví dụ đơn giản như này:
Thiết kế website của bạn có nội dung là cập nhật giá vàng trong nước. Khi cài đặt webhook, máy chủ sẽ liên tục thăm dò cập nhật thông tin. Khi bất ngờ có sự kiện mới là giá vàng tăng mạnh, sever sẽ lập tức gửi thông báo “giá vàng tăng” đến ứng dụng trên điện thoại của bạn. Khi này, điện thoại của bạn sẽ lập tức hiện thông báo để người dùng nhanh chóng nắm bắt những thông tin đang diễn ra.
Xem thêm: API là gì? 4 cách củng cố tính bảo mật API | Sapo Web
2. Những khái niệm cơ bản của webhook
Liên quan đến khái niệm webhook là gì, bạn cần tìm hiểu thêm một số khái niệm như consume, debug và securing như sau.
2.1 Consume webhook là gì?
Consume webhook là bạn sẽ gửi cho công ty cung cấp webhook một URL để có thể gửi yêu cầu đến. Đồng nghĩa với việc bạn phải sắp xếp URL cho ứng dụng của mình để có thể truy cập trên những trang web công khai.
Có hai hình thức mà webhook sẽ gửi dữ liệu đến URL:
- as JSN
- XML
2.2 Debug webhook là gì?
Việc Debug webhook được đánh giá là khá phức tạp bởi cơ chế của webhook không đồng bộ. Và đó là lý do bạn phải trigger và chờ đợi chúng phản hồi. Công việc này đòi hỏi sự kiên nhẫn cao, nếu không bạn sẽ rất dễ gặp tình trạng chán nản, muốn từ bỏ.
Bạn có thể tham khảo một vài gợi ý sau để debug diễn ra đơn giản và dễ dàng hơn
- Sử dụng các công cụ như cURL hay postman để giả lập những phản hồi
- Check lại các code bằng máy tính của bạn
- Tham khảo công cụ Requestbin để hiểu rõ hơn những thứ được cung cấp bởi webhook là gì…
2.3 Securing webhook là gì?
Webhook sẽ gửi dữ liệu đến các URL có sẵn trong ứng dụng của bạn, vậy nên rất có thể sẽ có người nhìn thấy những dữ liệu đó và làm sai lệch đi dữ liệu ban đầu. Và đó là lý do, bạn cần phải yêu cầu tất cả các kết nối đến phải là giao thức HTTPs.
- Thêm token vào URL hoạt động như một dạng duy nhất
- Triển khai Basic Auth
- Hai giải pháp đầu tiên có thể ngăn chặn hầu hết các cuộc tấn công. Nhưng lại có nhược điểm là phải gửi token với cùng một yêu cầu. vậy nên bạn có thể tham khảo cách khác đó là yêu cầu nhà cung cấp sign mỗi request gửi tới bạn rồi xác minh chúng.
Tuy nhiên, cách này lại có nhược điểm là yêu cầu nhà cung cấp triển khai request signing. Nếu nó không có sẵn, thì cách này hoàn toàn không thể được sử dụng.
3. Các chức năng hỗ trợ webhook là gì?
Webhook có 4 chức năng chính đối với website như sau:
- Thêm mới đơn hàng
- Thêm mới khách hàng
- Thêm mới các sản phẩm
- Duyệt đơn hàng
Bên cạnh 4 chức năng này, webhook còn được biết đến với chức năng nổi bật khác chính là được người dùng định nghĩa và thực hiện bằng HTTP. Trong trường hợp website có sự kiện thì trang nguồn có thể tạo yêu cầu giao thức HTTP đến URL được cấu hình cho webhook.
4. Một số lưu ý khi sử dụng webhook là gì?
Có 2 vấn đề cần lưu ý khi sử dụng webhook như sau:
-Webhook thường cung cấp dữ liệu dành cho Webhook thường cung cấp dữ liệu dành cho application của bạn và thường sẽ ngừng quan tâm ngay sau khi được yêu cầu. Có nghĩa là, nếu ứng dụng bị lỗi thì dữ liệu đã được lưu trữ sẽ bị mất.
Ngoài ra, khi ứng dụng của bạn thực hiện xử lý yêu cầu mà xuất hiện lỗi. Thì dữ liệu có thể sẽ bị trùng lặp ngay trong ứng dụng của bạn. Chính vì vậy, hãy hiểu rõ cách nhà cung cấp webhook của bạn xử lý những phản hồi để chuẩn bị tốt cho các trường hợp lỗi có thể xảy ra trong ứng dụng.
- Webhook có khả năng hỗ trợ rất nhiều yêu cầu. Khi nhà cung cấp cần thực thi các event hoặc có nhiều yêu cầu cần gửi đến khách hàng liên tục. Điều này có thể dẫn đến tình trạng DDosing.
Kết luận
Trên đây là những thông tin giải đáp webhook là gì, các khái niệm liên quan đến webhook, lợi ích cùng những lưu ý khi sử dụng webhook. Chúc các bạn có thật nhiều kiến thức về website và hẹn gặp lại trong những bài chia sẻ lần sau.
Bài viết được tham khảo từ nhiều nguồn!