Sự khác biệt giữa webhook và API là gì?


14

Các lập trình viên đưa ra yêu cầu cho API sau đó sẽ nhận được phản hồi. Ví dụ: sử dụng API Web để gửi email, bạn sẽ chuyển nội dung email với yêu cầu. Nếu mọi việc suôn sẻ, bạn sẽ nhận được phản hồi tuyên bố thành công.

Để sử dụng webhook , bạn đăng ký URL với công ty cung cấp dịch vụ. URL đó là một nơi trong ứng dụng của bạn sẽ chấp nhận dữ liệu và làm một cái gì đó với nó. Trong một số trường hợp, bạn có thể thông báo cho nhà cung cấp các tình huống khi bạn muốn nhận dữ liệu. Bất cứ khi nào có một cái gì đó mới, webhook sẽ gửi nó đến URL của bạn.

Vì vậy, về cơ bản họ đang làm điều tương tự.

Câu hỏi của tôi là: sự khác biệt giữa webhook và api là gì?

Không phải trong các điều khoản WEBHOOK IS ____ và API IS ______.

Tôi biết họ là gì. Tôi quan tâm đến sự khác biệt chính và khi nào nên sử dụng cái này và khi nào nên sử dụng cái khác.

Câu trả lời:


14

Sự khác biệt đầu tiên và chính giữa chúng là với hầu hết các API đều có yêu cầu theo sau là phản hồi. Không có yêu cầu nào được yêu cầu cho một webhook, nó chỉ gửi dữ liệu khi có sẵn.

Chế độ xem đơn giản:

API là một giao diện cho dữ liệu của bạn trên example.com. API được sử dụng từ máy chủ của bạn đến nền tảng example.com và có thể được sử dụng để Liệt kê, Tạo, Chỉnh sửa hoặc Xóa các mục.

Webhooks là các cuộc gọi tự động từ example.com đến máy chủ của bạn được kích hoạt khi một sự kiện cụ thể xảy ra trong example.com. Ví dụ: khi một nhiệm vụ được hoàn thành và bạn muốn biết về nó trong thời gian thực, chúng tôi sẽ thực hiện một yêu cầu POST cho URL mà bạn đã đăng ký cho webhook EVENT.COMPLETED trong tài khoản mẫu của bạn.

Vì vậy, một cách ngắn gọn: API là nơi bạn nói với example.com mọi thứ và Webhooks là nơi example.com cho bạn biết mọi thứ.

Nhìn sâu hơn:

SaaS là ​​một khái niệm - ý tưởng về Phần mềm tồn tại trong đám mây và ứng dụng khách nói chung là một trình duyệt. Ứng dụng SaaS được xác định bởi các chức năng mà nó có thể cung cấp cho người dùng (ví dụ Salesforce cung cấp cơ sở dữ liệu có thể được sử dụng để lưu trữ thông tin khách hàng) các chức năng có sẵn được xác định theo mục đích của ứng dụng (ví dụ: CRM, Email Blaster, CMS , Vân vân.).

API là cách để các ứng dụng SaaS được kết nối với các ứng dụng khác thông qua một phương thức giao tiếp phổ biến (ReST, SOAP, JSON, v.v.). Một API không thể nói trực tiếp với một API khác. API có thể được sử dụng bởi một ứng dụng được mã hóa hoặc phần mềm trung gian hoạt động như một cầu nối giữa hai API và chạy chuỗi thực thi. Ví dụ: cả NetSuite và Salesforce đều có API SOAP, nhưng để họ giao tiếp - bạn muốn sử dụng phần mềm trung gian có thể tương tác với cả hai hệ thống và được định cấu hình để kéo các bản ghi liên hệ mới thông qua API của Salesforce và đẩy các bản ghi mới lên NetSuite thông qua đó là API mỗi giờ.

Webhooks là một giao thức giao tiếp khác cho các ứng dụng SaaS cho phép giao tiếp giữa các ứng dụng, nhưng chỉ cần sử dụng HTTP POSTS để điều khiển luồng thực thi. Webhooks cho phép một ứng dụng nói chuyện trực tiếp với nhau mà không cần sử dụng phần mềm trung gian. Ví dụ: khi bạn gửi biểu mẫu cho WuFoo, nó có thể được thiết lập để bắt đầu HTTP POST webhooks cho dịch vụ khác và chuyển qua một số giá trị trường từ việc gửi biểu mẫu. Webhooks cũng có thể được sử dụng cùng với API - ví dụ: sau khi webhook thông báo cho ứng dụng khác xảy ra với bản ghi id X, ứng dụng đó có thể sử dụng API để liên lạc với dịch vụ để kiểm tra giá trị trường mới hoặc sửa đổi trạng thái của một kỷ lục.

Rất khó để có API hoặc webhooks mà không có ứng dụng SaaS. Tuy nhiên, bạn có thể dễ dàng có ứng dụng SaaS không sử dụng webhooks hoặc API (công khai). Tương tự, tùy thuộc vào các chức năng của ứng dụng SaaS của bạn, bạn có thể chọn sử dụng webhooks HOẶC API.


11

API đang thực hiện công cụ khi bạn yêu cầu, trong khi Webhook tự làm mọi thứ khi tiêu chí nhất định phù hợp.

Vì vậy, một cách ngắn gọn: API là nơi bạn cho chúng tôi biết mọi thứ và Webhooks là nơi chúng tôi nói với bạn mọi thứ.

thông qua http://apidocs.teamwork.com/article/466-whats-the-difference-b between-the-api-and-webhooks

Bất cứ khi nào có một cái gì đó mới, webhook sẽ gửi nó đến URL của bạn.

thông qua https://sendgrid.com/blog/webhook-vs-api-whats-difference/


5

Tôi sẽ minh họa điều này bằng một ví dụ cụ thể: Thanh toán bằng thẻ tín dụng.

Khi trang web của bạn muốn tính phí thẻ tín dụng, bạn gọi API tại bộ xử lý thẻ tín dụng của bạn. Sau đó, bộ xử lý thẻ tín dụng sẽ tính phí thẻ tín dụng trả về trạng thái thành công hoặc thất bại cho lệnh gọi API đó.

Bộ xử lý thẻ tín dụng có thể cần một số cách cập nhật trang web của bạn về giao dịch này sau. Ví dụ, giao dịch có thể được đảo ngược vào tuần tới. Bộ xử lý thẻ tín dụng của bạn chỉ có thể gửi cho bạn một email về việc này. Một cách khác để đối phó với nó là webhooks . Bạn nói với bộ xử lý thẻ tín dụng của bạn một URL trên trang web của bạn rằng họ có thể nhấn và gửi dữ liệu cho bạn. Khi giao dịch bị đảo ngược, bộ xử lý thẻ tín dụng hỗ trợ móc web sẽ liên hệ với trang web của bạn theo URL bạn cung cấp và gửi cho bạn dữ liệu ở định dạng có thể đọc được bằng máy mà bạn có thể phân tích và tự động xử lý ứng dụng web của bạn.

Một webhook là một cơ chế gọi lại cho API. Về cơ bản, bạn triển khai API cho các cuộc gọi lại không đồng bộ kết hợp với API mà bạn đang gọi.


"Về cơ bản, bạn triển khai API cho các cuộc gọi lại không đồng bộ ..." - không nên là "webhook"?
MrWhite

1
Tôi đang cố gắng nói rằng một webhook là một API mà bạn triển khai. Bạn gọi một API. Một webhook là một API mà bạn triển khai để họ gọi cho bạn.
Stephen Ostermiller

2

Đây là một ví dụ về sự khác biệt giữa webhook và API trong thuật ngữ của cư sĩ:

Giả sử bạn đã đặt hàng trực tuyến và việc giao hàng sẽ diễn ra ngay hôm nay nhưng bạn đang ở nơi làm việc nên bạn đã nói với người giúp việc của bạn lấy gói hàng khi nó đến. Mục tiêu là, bạn phải được thông báo nếu gói hàng đã đến. Đây là những gì xảy ra trong:

Webhook

  • Khi gói hàng đến, người giúp việc của bạn sẽ gọi ngay cho bạn để thông báo cho bạn rằng gói hàng đã đến.

API

  • Các gói đã đến nhưng bạn vẫn không biết. Sau đó, bạn gọi bạn là người giúp việc để hỏi xem nó đã đến chưa, sau đó cô ấy đồng ý.

Sự khác biệt là trong API bạn cần một trình kích hoạt để tìm nạp dữ liệu như cuộc gọi bạn đã thực hiện, trong khi webhook tự động thông báo cho bạn khi có dữ liệu mới đến mà không cần kích hoạt.


0

một Api chỉ đơn giản là một ứng dụng nhỏ được sử dụng để truy cập vào các tính năng hoặc dữ liệu nhất định trong bất kỳ nền tảng phát triển từ một nền tảng đã có sẵn, ví dụ: bạn muốn sử dụng google dịch vụ vị trí địa lý (nền tảng đã có sẵn) trên trang web của bạn (đang phát triển nền tảng), thay vì xây dựng lại toàn bộ hệ thống và thiết lập vệ tinh của riêng bạn, bạn sử dụng một Api nhỏ để truy cập tính năng đó từ google.

Mặc dù Web hook chỉ đơn giản là một Url trả lại hoặc trả lại cho trang web hoặc nền tảng của bạn nơi phản hồi và dữ liệu bạn yêu cầu sử dụng Api được gửi đến và ở đó bạn thu thập thông tin bạn tìm kiếm.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.