Jaka jest różnica między hakiem sieciowym a interfejsem API?

15

Programiści, którzy złożą zapytanie do API , otrzymają odpowiedź. Na przykład, używając interfejsu API sieci Web do wysłania wiadomości e-mail, przekazujesz treść wiadomości e-mail z żądaniem. Jeśli wszystko pójdzie dobrze, otrzymasz odpowiedź ogłaszającą sukces.

Aby skorzystać z haka internetowego , należy zarejestrować adres URL w firmie świadczącej usługę. Ten adres URL to miejsce w Twojej aplikacji, które zaakceptuje dane i coś z nimi zrobi. W niektórych przypadkach możesz poinformować dostawcę o sytuacjach, w których chcesz otrzymywać dane. Gdy tylko pojawi się coś nowego, hak internetowy wyśle ​​go na Twój adres URL.

Zasadniczo robią to samo.

Moje pytanie brzmi: jaka jest różnica między hakiem sieciowym a interfejsem API?

Nie w terminach WEBHOOK TO ____ i API IS ______.

Wiem jakie to są. Interesują mnie kluczowe różnice i kiedy użyć jednego, a kiedy innego.

Josip Ivic
źródło

Odpowiedzi:

15

Pierwszą i główną różnicą między nimi jest to, że w przypadku większości interfejsów API pojawia się żądanie, po którym następuje odpowiedź. Haczyk internetowy nie wymaga żadnego żądania, po prostu wysyła dane, gdy są dostępne.

Prosty widok:

Interfejs API jest interfejsem do twoich danych w example.com. Interfejs API jest używany z Twojego serwera na platformie przyklad.com i może być używany do wyświetlania, tworzenia, edytowania lub usuwania elementów.

Haki internetowe to zautomatyzowane połączenia z example.com na Twój serwer, uruchamiane, gdy określone zdarzenie nastąpi w example.com. Na przykład, gdy zadanie zostanie zakończone i chcesz o nim wiedzieć w czasie rzeczywistym, prześlemy żądanie POST na adres URL zarejestrowany dla haka EVENT.COMPLETED na Twoim przykładowym koncie.

W skrócie: API to miejsce, w którym opowiadasz przykładom.com, a Webhooks to miejsce, w którym przykład.com mówi ci rzeczy.

Patrząc bardziej szczegółowo:

SaaS to koncepcja - idea oprogramowania, które istnieje w chmurze, a klient jest ogólnie przeglądarką. Aplikacja SaaS jest zdefiniowana przez funkcje, które może zapewnić użytkownikowi (na przykład Salesforce zapewnia bazę danych, która może służyć do przechowywania informacji o kliencie), dostępne funkcje są określone przez cel aplikacji (tj .: CRM, Email Blaster, CMS itp.).

Interfejs API to sposób na łączenie aplikacji SaaS z innymi aplikacjami za pomocą wspólnej metody komunikacji (ReST, SOAP, JSON itp.). Interfejs API nie może mówić bezpośrednio do innego interfejsu API. Interfejs API może być używany przez zakodowaną aplikację lub oprogramowanie pośrednie, które działa jako pomost między dwoma interfejsami API i uruchamia wątek wykonania. Na przykład - zarówno NetSuite, jak i Salesforce mają interfejs API SOAP, ale do komunikacji - chcesz użyć oprogramowania pośredniego, które może wchodzić w interakcje z oboma systemami i być skonfigurowane do pobierania nowych rekordów kontaktów za pośrednictwem interfejsu API Salesforce i przesyłania nowych rekordów do NetSuite za pośrednictwem to API co godzinę.

Webhooks to kolejny protokół komunikacyjny dla aplikacji SaaS, który pozwala na komunikację między aplikacjami, ale po prostu używa HTTP POSTS do kontrolowania wątku wykonania. Haki internetowe umożliwiają aplikacjom bezpośrednie komunikowanie się ze sobą, bez użycia oprogramowania pośredniego. Na przykład - po przesłaniu formularza do WuFoo można go skonfigurować w taki sposób, aby inicjował HTTP POST webhooks do innej usługi i przekazywał niektóre wartości pól z przesłanego formularza. Haczyków internetowych można również używać w połączeniu z interfejsem API - na przykład po powiadomieniu przez inną aplikację, że coś się stało, aby zarejestrować identyfikator X, ta aplikacja może użyć interfejsu API do komunikacji z usługą w celu sprawdzenia nowych wartości pól lub zmodyfikowania stanu nagranie.

Trudno mieć API lub webhooki bez aplikacji SaaS. Możesz jednak łatwo mieć aplikację SaaS, która nie korzysta z haków internetowych ani (publicznego) interfejsu API. Podobnie, w zależności od funkcji aplikacji SaaS, możesz zdecydować się na użycie haków internetowych LUB interfejsu API.

knif3r
źródło
Dzięki! Dołączyłem do tej społeczności tylko po to, aby głosować na twoją odpowiedź (i pytanie oczywiście!).
Kaushal28
11

API robi rzeczy, kiedy o to poprosisz, podczas gdy Webhook robi rzeczy samodzielnie, gdy określone kryteria są zgodne.

W skrócie: API to miejsce, w którym nam mówisz, a Webhooks to miejsce, w którym ci mówimy.

przez http://apidocs.teamwork.com/article/466-whats-the-difference-between-the-api-and-webhooks

Gdy tylko pojawi się coś nowego, hak internetowy wyśle ​​go na Twój adres URL.

przez https://sendgrid.com/blog/webhook-vs-api-whats-difference/

Dół
źródło
5

Zilustruję to konkretnym przykładem: płatności kartą kredytową.

Gdy Twoja witryna chce obciążyć kartę kredytową, wywołujesz interfejs API w procesorze karty kredytowej. Następnie procesor karty kredytowej obciąża kartę kredytową zwrotem statusu powodzenia lub niepowodzenia tego połączenia API.

Procesor karty kredytowej może później potrzebować aktualizacji strony o tej transakcji. Na przykład transakcja może zostać odwrócona w przyszłym tygodniu. Twój procesor karty kredytowej może po prostu wysłać Ci wiadomość e-mail na ten temat. Innym sposobem radzenia sobie z tym są haki internetowe . Podajesz procesorowi karty kredytowej adres URL w swojej witrynie, aby mógł trafić i wysłać Ci dane. Gdy transakcja zostanie odwrócona, procesor karty kredytowej, który obsługuje przechwytywanie stron internetowych, skontaktuje się z Twoją witryną pod podanym adresem URL i wyśle ​​dane w formacie odczytywalnym maszynowo, który można przeanalizować i automatycznie zająć się aplikacją internetową.

Webhook to mechanizm zwrotny dla interfejsu API. Zasadniczo implementujesz interfejs API dla asynchronicznych wywołań zwrotnych w połączeniu z wywoływanym interfejsem API.

Stephen Ostermiller
źródło
„Zasadniczo implementujesz interfejs API dla asynchronicznych wywołań zwrotnych ...” - czy nie powinien to być „hak internetowy”?
MrWhite
1
Próbuję powiedzieć, że hak jest interfejsem API, który implementujesz. Dzwonisz do API. Webhook to interfejs API, który implementujesz, aby do Ciebie dzwonił.
Stephen Ostermiller
2

Oto przykład różnicy między hakiem internetowym a interfejsem API w terminach laika:

Powiedzmy, że zamówiłeś coś przez Internet, a dostawa będzie dziś, ale jesteś w pracy, więc powiedziałeś swojej pokojówce, że dostanie paczkę, gdy tylko dotrze. Celem jest powiadomienie, jeśli paczka już dotarła. Tak dzieje się w:

Hak

  • Gdy paczka dotrze, pokojówka natychmiast zadzwoni, aby powiadomić cię, że paczka już dotarła.

API

  • Paczka już przyjechała, ale wciąż nie wiesz. Potem zadzwoniłeś, że jesteś pokojówką i spytałeś, czy już dotarła, a ona mówi: tak.

Różnica polega na tym, że w interfejsie API potrzebujesz wyzwalacza, aby pobrać dane, takie jak wykonane połączenie, a webhook automatycznie powiadamia cię, gdy nowe dane dotrą bez potrzeby wyzwalania.

Społeczność
źródło
0

Api jest po prostu mała aplikacja, która służy do uzyskania dostępu do niektórych funkcji lub danych w dowolnej platformie rozwojowej z już istniejącej platformy, na przykład: chcesz użyć google usługi geolokalizacyjne (już istniejącej platformy) na swojej stronie internetowej (rozwój platforma), zamiast przebudowywać cały system i konfigurować własnego satelitę, używasz małego interfejsu API, aby uzyskać dostęp do tej funkcji z Google.

Podczas gdy hak internetowy jest po prostu zwrotnym lub rezerwowym adresem URL na twojej stronie internetowej lub platformie, na którą wysyłane są odpowiedzi i dane, o które prosiłeś za pomocą interfejsu API, i tam zbierasz poszukiwane informacje.

Abel Akponine
źródło