Webhooks là gì? Tổng quan các kiến thức về Webhooks cần biết

Webhooks là một tính năng cho phép website tự động gửi thông báo và gửi dữ liệu thời gian thực đến những hệ thống khác. Tuy nhiên không mấy ai hiểu thực sự Webhooks là gì và những tính năng mà nó mang lại. Hôm nay hãy cùng công ty thiết kế website Nhật Nam Media tìm hiểu qua bài viết sau để giải quyết những thắc mắc đó.

Webhooks là gì?

Webhooks hay còn gọi là HTTP Push API và Web Callback là một tính năng rất tiện dụng trong việc khai thác các event reaction trên website. Webhooks cung cấp một giải pháp ứng dụng server-side thông báo cho ứng dụng ở phía client-side khi có sự kiện phát sinh xảy ra trên máy chủ ( event reaction). 

Ngoài ra, Webhooks còn thường được gọi là “Reverse APIs” vì nó cung cấp số lượng tương ứng với số API. Quá trình hoạt động của Webhooks phụ thuộc vào phản ứng sự kiện.

Tuy nhiên khi có Webhooks, phía server-side sẻ gọi webhooks (end-point URL sẽ được cung cấp bởi ứng dụng client-side). Vì thế việc sử dụng client-side phải liên tục kiểm tra thăm dò server-side để kiểm tra sự kiện mới.

Các chức năng chính và hỗ trợ của Webhooks

Chức năng chính của Webhooks

Webhooks được kích hoạt qua các sự kiện như: bình luận được đăng blog, đẩy mã vào kho lưu trữ…Là cuộc gọi lại được người dùng định nghĩa và thực hiện nó bằng HTTP. 

Khi sự kiện xảy ra, trang nguồn tạo yêu cầu từ HTTP đến URL đã được định cấu hình cho webhooks. Người dùng có thể định cấu hình cho webhooks để gây các sự kiện cho trang web để gọi hành vi trên trang web khác.

Khi sử dụng phổ biến giúp kích hoạt các bản dựng với hệ thống tích hợp liên tục, một số trường hợp sẽ thông báo đến hệ thống theo dõi lỗi.

Webhooks sử dụng HTTP vì thế nó có thể tích hợp vào các dịch vụ web khác mà không cần thêm cơ sở hạ tầng.

Ngoài những các chức năng trên thì ở webhooks còn có chức năng hỗ trợ thiết kế website: 

  • Duyệt đơn hàng
  • Thêm sản phẩm mới
  • Thêm khách hàng mới
  • Thêm đơn hàng mới

Các khái niệm cơ bản của Webhooks mà bạn cần biết

Để các bạn có thể hiểu rõ hơn những gì đăng có mặt ở trên webhooks trước tiên bạn cần biết các khái niệm cơ bản của webhooks

Consuming a Webhook

Điều đầu tiên mà bạn cần thực hiện đó là bạn cần cung cấp cho webhook một URL để webhook provider gửi request tới. Đồng nghĩa với việc chúng ta cần setup URL cho ứng dụng có thể truy cập Public Web.

  • Có 2 hình thức thường được Webhook phản hồi lại dữ liệu cho URL của người dùng là XML hay JSON (thông thường).
  • Trước khi quá trình bắt đầu, người dùng sẽ nhận các thông tin về những API hoặc cho phép chúng ta custum nội dung của API cung cấp.

Securing a Webhook

Nhằm ngăn chặn các nguy cơ xấu về việc hay tác vụ mà người tìm thấy URL rồi cung cấp các dữ liệu sai khi Webhooks cup cấp dữ liệu đến các URL công khai, ta có thể sử dụng các kỹ thuật sau: 

  • Yêu cầu các kết nối đến là https.
  • Thêm token vào URL với vai trò như một nhận dạng duy nhất, đây là cách được hỗ trợ nhiều nhất. Ví dụ như ?auth=TK
  • Triển khai Basic Auth, điều này được hỗ trợ rộng rãi và rất dễ thực hiện.

Chúng ta có thể đưa ra 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. Tuy nhiên, nhược điểm chung là phải gửi token cùng với yêu cầu. Còn một giải pháp nữa là bên phía provider sẽ sign các request gửi tới client và sau đó client-side sẽ verify các signature đấy.

Debugging a Webhook

Debugging webhook là việc mà đôi khi khá phức tạp vì bản chất cơ chế của nó là bất đồng bộ. Vì thế cần kích họa từng phần và theo dõi các phản ứng của chúng. Qua đó mà ta có thể đưa ra các chuẩn đoán về lỗi và đề ra hướng khắc phục. Debug Webhook có thể dễ dàng hơn nếu:

  • Sử dụng các công cụ như requestBin để thu thập request của Webhook và cũng như hiểu rõ hơn về những gì Webhook cung cấp
  • Sử dụng các công cụ cURL hay Postman để giả lập các request
  • Publish code trên local machine với ngrok
  • Sử dụng các tool như là Runscope để theo dõi toàn bộ flow
    Webbhooks

Important Gotchas là gì ?

Có 2 loại cấu tạo Webhooks phổ biến nhất mà các bạn thường xuyên bắt gặp hoặc nghe qua đầu tiên đó là:

  • Loại Webhook đầu tiên là loại sau khi hoàn thành nhiệm vụ của mình là gửi data đến client sẽ không quan tâm đến bất kỳ điều gì. 
  • Loại Webhook thứ hai cẩn thận hơn loại một, hệ thống sẽ lưu trữ bản sao chép trước khi gửi data cho khách hàng. Và sau đó, Webhook chỉ xác nhận thành công khi đã có phản hồi từ client.
    Webhooks

Những ví dụ về Webhooks

Sendgrid:

  • Sự kiện diễn ra thường xuyên sau khi diễn ra một hành động nào đó như yêu cầu hỗ trợ, mới mua hàng…Các Gmail sẽ được gửi cho khách hàng, đó là một việc khá quan trọng
  • Và cũng là tính năng rất quan trọng nếu bạn muốn gửi email quan trọng của mình đến người dùng và nếu họ không nhận được email, bạn sẽ có thể đưa ra các giải pháp khác để khắc phục.

Công cụ gửi email marketing MailChimp:

Mailchimp dùng Webhooks cho một số sự kiện quan trọng như subscribing (đăng ký nhận bản tin), unsubscribing (hủy đăng ký), thay đổi thông tin người dùng.

Webhooks

Cách hoạt động của MailChimp như sau:

  • Trước tiên, Mailchimp sẽ nhận tập data về khách hàng đã có lượt mua trên web hoặc khách hàng đã đăng ký nhận thông báo web
  • Tiếp theo, Mailchimp sẽ gửi thông báo cho những tập khách hàng này khi có sự kiện nào đó xảy ra và có phân chia theo trường hợp

Mailchimp sẽ giúp bạn quản lý data khi nó luôn được kết nối với người đăng ký tài khoản trên website lần đầu, dễ dàng thực hiện gửi email hằng ngày (newsletter).

Stripe:

  • Stripe cũng cho phép sử dụng webhooks với rất nhiều loại event khác nhau như ngày tháng có chính xác không, xác định thanh toán có thông qua hay không.
  • Những dữ liệu này sẽ giúp cho việc thực hiện thanh toán trở nên chính xác.

Ngoài ra nếu bạn đã sử dụng WordPress để làm thương mại điện tử, bạn sẽ thấy Plugin WooCommerce cũng hỗ trợ hình thức thanh toán Stripe.

 

Khi nào nên sử dụng Webhooks?

Các lập trình viên thường sử dụng Webhoks để cập nhật các event theo thời gian thực và đó được xem là cách tiết kiệm tài nguyên. Webhooks được sử dụng nhiều cho trường hợp này.

Khi API của bạn không tốt hoặc không có API để bắt đầu, Webhooks còn đường sử dụng qua API. Webhooks còn là giải pháp tạm thời để cung cấp dữ liệu giúp phần mềm/ứng dụng của bạn có thể hoạt động.

Webhooks có lợi thế về khả năng linh động và tiết kiệm tài nguyên. Tuy vậy, bạn nên lưu ý gọi dữ liệu thường xuyên để công cụ có thể cập nhật phiên bản mới.

Cách bảo vệ Webhooks hiệu quả

Webhooks cup cấp dữ liệu đến các URL có sẵn, công khai trong ứng dụng của bạn, vậy nên có khả năng rằng người khác có thể tìm thấy URL đó và cung cấp cho bạn dữ liệu sai.

Để tránh các rủi ro bảo mật khi sử dụng Webhooks bạn nên tham khảo các kỹ thuật sau:

  • Đưa ra yêu cầu, hạn chế cho các kết nối đến: Chắc chắn rằng các kết nối đến đều là https.
  • Thêm một vài mã thông báo vào trong các URL để giữ vai trò nhận dạng
  • Sử dụng Basic Auth
  • Yêu cầu phía client-side phải định danh bằng chữ ký và xác minh những chữ ký đó.

Có nhiều kỹ thuật hỗ trợ bảo mật Webhooks, bên cạnh đó bạn nên hạn chế các kết nối đến là biện pháp mang lại hiệu quả tích cực nhất.

Những lưu ý khi sử dụng Webhooks

Có 2 vấn đề bạn nên lưu ý khi sử dụng Webhooks như sau: 

Webhooks cung cấp dữ liệu cho ứng dụng của bạn và có thể ngừng quan tâm sau khi yêu cầu:

Có nghĩa là nếu ứng dụng của bạn gặp các lỗi thì dữ liệu có thể bị mất. Nếu ứng dụng của bạn bị lỗi, nhiều webhooks sẽ chú ý đến phản hồi và gửi lại yêu cầu. Và hơn thế, khi ứng dụng của bạn xử lý yêu cầu mà vẫn bị lỗi có thể dữ liệu bị trùng lặp.

Do đó, việc hiểu cách nhà cung cấp webhook xử lý các phản hồi sẽ giúp bạn chuẩn bị tốt hơn nếu xảy ra lỗi ứng dụng.

Webhooks có thể thực hiện rất nhiều yêu cầu được đưa ra:

 Khi nhà cung cấp có nhiều yêu cầu cần gửi đến khách hàng liên tục hoặc cần thực thi các event. Việc nhà cung cấp có quá nhiều event có thể dẫn đến DDoS (Tấn công từ chối dịch vụ).

Hãy đảm bảo ứng dụng của bạn có thể xử lý quy mô webhooks trong dự tính của bạn.

Với những chia sẻ về bài viết Webhooks là gì? Tổng quan các kiến thức Webhooks cần biết của Nhật Nam Media hôm nay, mong các bạn sẽ nắm được các kiến thức cơ bản và giải đáp được các thắc mắc của các bạn. Đừng quên tiếp tục theo dõi các bài viết tiếp theo, cũng như là việc để lại những đóng góp ý kiến xoay quanh việc những chủ đề marketing mà bạn đang quan tâm, hay các xu thế thịnh hành để Nhật Nam Media có thể nhanh chóng kịp thời gửi thông tin đó đến bạn trong thời gian sớm nhất nhé.

Mục nhập này đã được đăng trong Website. Đánh dấu trang permalink.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *