В чем разница между веб-крючком и API?

15

Программисты, которые делают запрос к API , получат ответ. Например, используя Web API для отправки электронной почты, вы передадите содержимое электронной почты вместе с запросом. Если все пойдет хорошо, вы получите ответ об успехе.

Чтобы использовать веб-крючок , вы регистрируете URL в компании, предоставляющей услугу. Этот URL-адрес - это место в вашем приложении, которое будет принимать данные и что-то с ними делать. В некоторых случаях вы можете сообщить провайдеру, в каких ситуациях вы хотите получать данные. Всякий раз, когда есть что-то новое, веб-крючок отправит это на ваш URL.

Таким образом, они в основном делают то же самое.

У меня такой вопрос: в чем разница между webhook и api?

Не в терминах WEBHOOK IS ____ и API IS ______.

Я знаю, что они. Меня интересуют ключевые различия и когда использовать одно, а когда использовать другое.

Иосип Ивич
источник

Ответы:

15

Первое и основное различие между ними заключается в том, что в большинстве 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.

knif3r
источник
Спасибо! Я присоединился к этому сообществу только для того, чтобы поддержать ваш ответ (и вопрос, конечно!).
Kaushal28
11

API делает что-то, когда вы об этом просите, в то время как Webhook делает вещи самостоятельно, когда определенные критерии соответствуют.

Итак, в двух словах: API - это то, что вы нам рассказываете, а Webhooks - то, где мы вам рассказываем.

через http://apidocs.teamwork.com/article/466-whats-the-difference-between-the-api-and-webhooks

Всякий раз, когда есть что-то новое, веб-крючок отправит это на ваш URL.

через https://sendgrid.com/blog/webhook-vs-api-whats-difference/

ямка
источник
5

Я проиллюстрирую это на конкретном примере: платежи по кредитным картам.

Когда ваш сайт хочет снять средства с кредитной карты, вы вызываете API у обработчика вашей кредитной карты. Затем обработчик кредитной карты снимает с кредитной карты статус успешного или неудачного вызова API.

Обработчику кредитной карты может потребоваться каким-то образом обновить ваш сайт об этой транзакции позже. Например, транзакция может быть отменена на следующей неделе. Ваш обработчик кредитной карты может просто отправить вам электронное письмо об этом. Еще один способ борьбы с этим - веб-зацепки . Вы указываете обработчику вашей кредитной карты URL-адрес на вашем сайте, что он может нажать и отправить вам данные. Когда транзакция отменяется, процессор кредитных карт, поддерживающий веб-хуки, свяжется с вашим сайтом по указанному вами URL-адресу и отправит вам данные в машиночитаемом формате, который вы можете проанализировать, и ваше веб-приложение будет обрабатывать автоматически.

Webhook - это механизм обратного вызова для API. Вы в основном реализуете API для асинхронных обратных вызовов в сочетании с API, который вы вызываете.

Стивен Остермиллер
источник
«Вы в основном реализуете API для асинхронных обратных вызовов ...» - разве это не должно быть «webhook»?
MrWhite
1
Я пытаюсь сказать, что webhook - это API, который вы реализуете. Вы называете API. Webhook - это API, который вы реализуете так, чтобы они вам звонили.
Стивен Остермиллер
2

Вот пример различия между webhook и API в терминах непрофессионала:

Скажем, вы заказали что-то онлайн, и доставка будет сегодня, но вы на работе, поэтому вы сказали, что горничная получит посылку, как только она прибудет. Цель состоит в том, чтобы вы были уведомлены, если пакет уже прибыл. Вот что происходит в:

Webhook

  • Как только пакет прибыл, ваша горничная немедленно позвонит вам, чтобы уведомить вас, что пакет уже прибыл.

API

  • Упакованный уже прибыл, но вы все еще не знаете. Затем вы позвонили своей горничной и спросили, прибыла ли она уже, тогда она ответила: да.

Разница в том, что в API вам нужен триггер для извлечения данных, например, сделанного вами вызова, а webhook автоматически уведомляет вас, как только поступают новые данные без использования триггера.

сообщество
источник
0

Api просто небольшое приложение , которое используется для получения доступа к определенным функциям или данным в любом платформы разработки от уже существующей платформы, например: вы хотите использовать Google гео-местоположение службы (уже существующие платформы) на вашем сайте (разработка платформу), вместо того, чтобы перестраивать всю систему и настраивать собственный спутник, вы используете маленький API для доступа к этой функции из Google.

Хотя веб-ловушка - это просто возвратный или резервный URL-адрес вашего веб-сайта или платформы, на который отправляются ответ и данные, запрошенные вами с помощью API, и вы собираете необходимую информацию.

Абель Акпонин
источник