Qual è la differenza tra un webhook e un'API?


15

I programmatori che effettuano una richiesta a un'API riceveranno quindi una risposta. Ad esempio, utilizzando l'API Web per inviare un'e-mail, passeresti il ​​contenuto dell'email con la richiesta. Se tutto va bene, riceverai una risposta che dichiara il successo.

Per utilizzare un webhook , registrare un URL con la società che fornisce il servizio. Tale URL è un posto all'interno dell'applicazione che accetta i dati e fa qualcosa con esso. In alcuni casi, puoi comunicare al fornitore le situazioni in cui desideri ricevere i dati. Ogni volta che c'è qualcosa di nuovo, il webhook lo invierà al tuo URL.

Quindi, sostanzialmente stanno facendo la stessa cosa.

La mia domanda è questa: qual è la differenza tra webhook e api?

Non nei termini WEBHOOK È ____ e API IS ______.

So cosa sono. Sono interessato alle differenze chiave e quando usarne una e quando usarne un'altra.

Risposte:


15

La prima e principale differenza tra loro è che con la maggior parte delle API c'è una richiesta seguita da una risposta. Non è richiesta alcuna richiesta per un webhook, invia semplicemente i dati quando sono disponibili.

Vista semplice:

L'API è un'interfaccia per i tuoi dati su example.com. L'API viene utilizzata dal tuo server alla piattaforma example.com e può essere utilizzata per elencare, creare, modificare o eliminare elementi.

I webhook sono chiamate automatizzate da esempio.com al tuo server attivate quando si verifica un evento specifico in esempio.com. Ad esempio, quando un'attività viene completata e vuoi conoscerla in tempo reale, faremo una richiesta POST all'URL che hai registrato per il webhook EVENT.COMPLETED nel tuo account di esempio.

Quindi, in poche parole: l'API è dove dici cose esempio.com e Webhooks è dove esempio.com ti dice cose.

Guardando più in profondità:

SaaS è un concetto: l'idea del software esistente nel cloud e il client è generalmente un browser. Un'applicazione SaaS è definita dalle funzioni che può fornire a un utente (ad esempio Salesforce fornisce un database che può essere utilizzato per archiviare le informazioni dei clienti) le funzioni disponibili sono determinate dallo scopo dell'applicazione (ad esempio: CRM, Email Blaster, CMS , eccetera.).

Un'API è un modo per collegare le applicazioni SaaS con altre applicazioni tramite un metodo di comunicazione comune (ReST, SOAP, JSON, ecc.). Un'API non può parlare direttamente con un'altra API. Un'API può essere utilizzata da un'applicazione codificata o da un middleware che funge da ponte tra due API ed esegue il thread di esecuzione. Ad esempio - sia NetSuite che Salesforce dispongono di un'API SOAP, ma per comunicare - vorresti utilizzare un software middleware in grado di interagire con entrambi i sistemi ed essere configurato per estrarre nuovi record di contatto attraverso l'API di Salesforce e inviare nuovi record a NetSuite attraverso è API ogni ora.

Webhooks è un altro protocollo di comunicazione per le applicazioni SaaS che consente la comunicazione tra le applicazioni, ma semplicemente utilizzando HTTP POSTS per controllare il thread di esecuzione. I webhook consentono a un'applicazione di parlare direttamente tra loro, senza utilizzare il middleware. Ad esempio, quando si invia un modulo a WuFoo, può essere impostato per avviare un POST HTTP di webhook su un altro servizio e passare alcuni valori di campo dall'invio del modulo. I webhook possono anche essere utilizzati insieme a un'API, ad esempio dopo che il webhook ha notificato all'altra applicazione qualcosa che è accaduto per registrare l'ID X, tale applicazione potrebbe utilizzare un'API per comunicare con il servizio per verificare i nuovi valori dei campi o modificare uno stato di un record.

È difficile avere un'API o i webhook senza avere un'applicazione SaaS. Tuttavia, puoi facilmente avere un'applicazione SaaS che non utilizza webhook o un'API (pubblica). Allo stesso modo, a seconda delle funzioni dell'applicazione SaaS, è possibile scegliere di utilizzare i webhook o un'API.


Grazie! Mi sono unito a questa community solo per esprimere la tua risposta (e la domanda ovviamente!).
Kaushal28,


5

Lo illustrerò con un esempio concreto: pagamenti con carta di credito.

Quando il tuo sito desidera addebitare una carta di credito, chiami un'API sul processore della tua carta di credito. L'elaboratore della carta di credito addebita quindi alla carta di credito uno stato di esito positivo o negativo a quella chiamata API.

L'elaboratore della carta di credito potrebbe aver bisogno di un modo per aggiornare il tuo sito su questa transazione in un secondo momento. Ad esempio, la transazione potrebbe essere annullata la prossima settimana. L'elaboratore della tua carta di credito potrebbe semplicemente inviarti un'email a riguardo. Un altro modo di gestirlo sono i webhook . Dici al tuo elaboratore di carte di credito un URL sul tuo sito che possono colpire e inviarti dati. Quando la transazione viene annullata, un elaboratore di carte di credito che supporta gli hook web contatterà il tuo sito all'URL fornito e ti invierà i dati in un formato leggibile dalla macchina che puoi analizzare e gestire automaticamente l'applicazione web.

Un webhook è un meccanismo di callback per un'API. In pratica si implementa un'API per callback asincroni insieme a un'API che si sta chiamando.


"Fondamentalmente implementate un'API per callback asincroni ..." - non dovrebbe essere "webhook"?
Mr White,

1
Sto cercando di dire che un webhook è un'API che implementi. Si chiama un'API. Un webhook è un'API che implementi in modo che ti chiamino.
Stephen Ostermiller

2

Ecco un esempio della differenza tra webhook e API nel termine laico:

Supponiamo che tu abbia ordinato qualcosa online e che la consegna sia oggi, ma sei al lavoro, quindi hai detto alla tua cameriera di ricevere il pacco una volta arrivato. L'obiettivo è che devi essere avvisato se il pacco è già arrivato. Questo è ciò che accade in:

Webhook

  • Una volta arrivato il pacco, la cameriera ti chiamerà immediatamente per avvisarti che il pacco è già arrivato.

API

  • Il pacchetto è già arrivato ma ancora non lo sai. Quindi hai chiamato la tua domestica per chiedere se è già arrivata, poi lei dice di sì.

La differenza è nell'API che è necessario un trigger per recuperare dati come la chiamata effettuata, mentre webhook ti avvisa automaticamente quando arrivano nuovi dati senza la necessità di un trigger.


0

un Api è semplicemente una piccola applicazione che viene utilizzata per ottenere l'accesso a determinate funzioni o dati in qualsiasi piattaforma di sviluppo da una piattaforma già esistente, per esempio: si desidera utilizzare google geo-localizzazione di servizio (piattaforma già esistente) sul tuo sito web (in via di sviluppo piattaforma), invece di ricostruire l'intero sistema e ottenere la configurazione del proprio satellite, si utilizza una piccola API per accedere a tale funzione da Google.

Mentre Web hook è semplicemente un URL di ritorno o fallback sul tuo sito Web o piattaforma in cui sono stati inviati la risposta e i dati richiesti utilizzando l' API e lì raccogli le informazioni che cerchi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.