Первое и основное различие между ними заключается в том, что в большинстве API есть запрос, за которым следует ответ. Для веб-крюка не требуется никаких запросов, он просто отправляет данные, когда они доступны.
API - это интерфейс с вашими данными на example.com. API используется с вашего сервера на платформе example.com и может использоваться для перечисления, создания, редактирования или удаления элементов.
Webhooks - это автоматические звонки с example.com на ваш сервер, которые запускаются, когда в example.com происходит определенное событие. Например, когда задача завершена и вы хотите узнать о ней в режиме реального времени, мы сделаем запрос POST на URL-адрес, который вы зарегистрировали для веб-крюка EVENT.COMPLETED в вашем примере учетной записи.
Итак, в двух словах: API - это то, где вы рассказываете вещи example.com, а Webhooks - это то, где example.com рассказывает вам вещи.
SaaS - это концепция - идея программного обеспечения, которое существует в облаке, а клиент - это, как правило, браузер. Приложение SaaS определяется функциями, которые оно может предоставлять пользователю (например, Salesforce предоставляет базу данных, которая может использоваться для хранения информации о клиентах), доступные функции определяются назначением приложения (например, CRM, Email Blaster, CMS. , и т.д.).
API - это способ соединения приложений SaaS с другими приложениями через общий метод связи (ReST, SOAP, JSON и т. Д.). API не может напрямую общаться с другим API. API может использоваться закодированным приложением или промежуточным программным обеспечением, которое действует как мост между двумя API и запускает поток выполнения. Например, - и NetSuite, и Salesforce имеют API-интерфейс SOAP, но для того, чтобы они могли обмениваться данными, вам нужно использовать программное обеспечение промежуточного уровня, которое может взаимодействовать с обеими системами и быть настроено на получение новых записей контактов через API Salesforce и передачу новых записей в NetSuite через это API каждый час.
Webhooks - это еще один протокол связи для приложений SaaS, который позволяет устанавливать связь между приложениями, но просто использует HTTP POSTS для управления потоком выполнения. Веб-хуки позволяют приложению общаться друг с другом напрямую, без использования промежуточного программного обеспечения. Например, когда вы отправляете форму в WuFoo, ее можно настроить для запуска HTTP POST webhooks в другой сервис и передачи некоторых значений полей из формы. Webhooks также можно использовать в сочетании с API - например, после того, как webhook уведомит другое приложение о том, что произошло с записью идентификатора X, это приложение может использовать API для связи со службой, чтобы проверить новые значения полей или изменить состояние запись.
Трудно иметь API или webhooks без приложения SaaS. Тем не менее, вы можете легко иметь приложение SaaS, которое не использует webhooks или (публичный) API. Точно так же, в зависимости от функций вашего SaaS-приложения, вы можете выбрать использование веб-хуков ИЛИ API.