Các bài viết

Webhook là gì và bạn sử dụng nó như thế nào?

Webhook cho phép các ứng dụng dựa trên web tương tác thông qua việc sử dụng lệnh gọi lại tùy chỉnh.

Việc sử dụng webhook cho phép các ứng dụng web tự động giao tiếp với các ứng dụng web khác.

Không giống như các hệ thống truyền thống trong đó một hệ thống (đối tượng) tiếp tục thăm dò một hệ thống khác (người quan sát) để tìm một số dữ liệu, webhook cho phép người quan sát tự động đẩy dữ liệu vào hệ thống của đối tượng bất cứ khi nào một sự kiện xảy ra.

Điều này loại bỏ sự cần thiết phải theo dõi liên tục của đối tượng. Webhook hoạt động hoàn toàn trên Internet và do đó, tất cả giao tiếp giữa các hệ thống phải diễn ra dưới dạng thông báo HTTP.

Sử dụng webhook

Webhook dựa vào sự hiện diện của các URL tĩnh trỏ đến API trong hệ thống của chủ thể cần được thông báo khi một sự kiện xảy ra trong hệ thống của người quan sát. Một ví dụ về điều này sẽ là một ứng dụng web được thiết kế để thu thập và quản lý tất cả các đơn đặt hàng được đặt trên tài khoản Amazon của người dùng. Trong trường hợp này, Amazon đóng vai trò là người quan sát và Ứng dụng web quản lý đơn đặt hàng tùy chỉnh đóng vai trò là chủ đề.

Thay vì yêu cầu ứng dụng web tùy chỉnh gọi API của Amazon theo định kỳ để kiểm tra đơn hàng đã tạo, một webhook được tạo trong ứng dụng web tùy chỉnh sẽ cho phép Amazon tự động gửi đơn hàng mới được tạo trong ứng dụng web thông qua một URL đã đăng ký. Do đó, để cho phép sử dụng webhook, đối tượng phải có các URL được chỉ định chấp nhận thông báo sự kiện từ người quan sát. Điều này làm giảm tải đáng kể cho đối tượng vì các cuộc gọi HTTP chỉ được thực hiện giữa hai bên khi có sự kiện xảy ra.

Hệ thống dựa trên thăm dò ý kiến ​​so với hệ thống dựa trên webhook

Sau khi người quan sát gọi webhook của đối tượng, đối tượng có thể thực hiện hành động thích hợp với dữ liệu mới được gửi này. Thông thường, webhook được thực hiện thông qua các yêu cầu POST tới một URL cụ thể. Yêu cầu POST cho phép bạn gửi thông tin bổ sung cho đối tượng. Ngoài ra, nó cũng có thể được sử dụng để xác định trong số nhiều sự kiện có thể xảy ra thay vì tạo các URL webhook riêng biệt cho từng sự kiện.

Quy trình làm việc trên webhook

Để triển khai các webhook gửi đến trên ứng dụng của mình, bạn cần thực hiện các bước cơ bản sau:

  • Hiển thị điểm cuối API trên máy chủ ứng dụng của bạn chấp nhận và xử lý lệnh gọi HTTP POST
  • Cung cấp quyền truy cập vào điểm cuối này cho người dùng webhook tiềm năng. Điểm cuối API sẽ gọi một ứng dụng nguồn dữ liệu bất cứ khi nào các điều kiện liên quan được đáp ứng.
  • Xử lý dữ liệu POST và trả về phản hồi cho trình khởi tạo cuộc gọi webhook để cho biết trạng thái. Bước này có thể có hoặc không.

Webhook so với API

Cả webhook và API đều có mục tiêu thiết lập giao tiếp giữa các ứng dụng. Tuy nhiên, có một số ưu điểm và nhược điểm riêng biệt của việc sử dụng Webhook thay vì API để tích hợp ứng dụng.

Bản tin đổi mới
Đừng bỏ lỡ những tin tức quan trọng nhất về đổi mới. Đăng ký để nhận chúng qua email.

Webhook có xu hướng trở thành giải pháp tốt hơn nếu các điểm sau phù hợp hơn với hệ thống được triển khai:

  • Nếu dữ liệu được cập nhật thường xuyên trên máy chủ, thì webhook có xu hướng là giải pháp tốt hơn vì các lệnh gọi API không cần thiết từ máy khách đến máy chủ sẽ bị loại bỏ. Theo resthooks.com, 98,5% khảo sát API bị lãng phí.
  • Webhook hỗ trợ các giải pháp tốt hơn cho các hệ thống yêu cầu cập nhật dữ liệu gần thời gian thực. Các cuộc thăm dò API thường chạy theo các khoảng thời gian đã đặt, điều này có thể khiến dữ liệu trực tiếp không được cập nhật. Với webhook, các bản cập nhật được gửi từ máy chủ đến máy khách ngay khi webhook được kích hoạt.

Sử dụng API nên được ưu tiên hơn webhook trong một số trường hợp khác.

Những điều cần cân nhắc

Những điều quan trọng cần cân nhắc khi sử dụng API trên Webhook là:

  • Việc sử dụng API cho phép tùy chỉnh nhiều hơn về thời điểm thăm dò dữ liệu từ máy chủ cũng như lượng dữ liệu cần thăm dò từ máy chủ. Lượng dữ liệu được thăm dò được điều chỉnh bởi kích thước thăm dò API. Với webhook, máy chủ thường quyết định dữ liệu và thời điểm dữ liệu được gửi.
  • Đối với các hệ thống có dữ liệu biến đổi cao (như hệ thống thời gian thực, hệ thống IoT, v.v.), bỏ phiếu dựa trên API có thể là một lựa chọn tốt hơn vì đối với mỗi lệnh gọi API, có xác suất cao là phản hồi có thể sử dụng được.
  • Dữ liệu được gửi từ máy chủ, thông qua webhook, có thể bị máy khách bỏ qua hoàn toàn trong trường hợp các điểm cuối REST ngoại tuyến. Trong trường hợp máy chủ không có cơ chế thử lại các lần đẩy không thành công như vậy, các cập nhật dữ liệu sẽ bị mất hoàn toàn.

Để giải quyết khả năng mất dữ liệu được gửi từ máy chủ khi webhook ngoại tuyến, bạn có thể sử dụng hàng đợi nhắn tin sự kiện để lưu trữ các cuộc gọi đó. Ví dụ về các nền tảng cung cấp chức năng như vậy bao gồm ThỏMQ o Dịch vụ xếp hàng đơn giản của Amazon (SQS). Cả hai đều được thiết kế để hoạt động như các phương tiện lưu trữ tin nhắn trung gian để tránh khả năng bỏ lỡ cuộc gọi webhook.

Ercole Palmeri

Bản tin đổi mới
Đừng bỏ lỡ những tin tức quan trọng nhất về đổi mới. Đăng ký để nhận chúng qua email.

Bài viết gần đây

Sự can thiệp sáng tạo vào thực tế tăng cường, với người xem Apple tại Phòng khám đa khoa Catania

Một ca phẫu thuật tạo hình mắt bằng cách sử dụng trình xem thương mại Apple Vision Pro đã được thực hiện tại Phòng khám đa khoa Catania…

3 May 2024

Lợi ích của việc tô màu cho trẻ em - thế giới kỳ diệu dành cho mọi lứa tuổi

Phát triển kỹ năng vận động tinh thông qua tô màu giúp trẻ chuẩn bị cho những kỹ năng phức tạp hơn như viết. Để tô màu…

2 May 2024

Tương lai là đây: Ngành vận tải biển đang cách mạng hóa nền kinh tế toàn cầu như thế nào

Ngành hải quân là một cường quốc kinh tế toàn cầu thực sự, đang hướng tới thị trường 150 tỷ...

1 May 2024

Các nhà xuất bản và OpenAI ký thỏa thuận điều chỉnh luồng thông tin được Trí tuệ nhân tạo xử lý

Thứ Hai tuần trước, Financial Times đã công bố một thỏa thuận với OpenAI. FT cấp phép cho hoạt động báo chí đẳng cấp thế giới…

30 tháng tư 2024

Đọc Đổi mới bằng ngôn ngữ của bạn

Bản tin đổi mới
Đừng bỏ lỡ những tin tức quan trọng nhất về đổi mới. Đăng ký để nhận chúng qua email.

Theo chúng tôi