2016-01-31 28 views
5

Ho seguito la serie impressionante di post sul blog di Henrik F Nielsen sulla nuova tecnologia WebHooks di ASP.NET. The latest post which can be found here, se interessati.Differenza tra WebHook e servizi Web ASP.NET?

In another, earlier one of these posts, ho chiesto in un commento qual è la differenza tra WebHooks e SignalR. Una risposta è stata successivamente pubblicata su un collegamento a great question (and answer) here on StackOverflow.

Tuttavia, ora dopo aver letto la risposta (s) a tale domanda, devo chiedere ora: Qual è la differenza tra l'utilizzo di WebHooks ASP.NET e l'utilizzo di un normale servizio web ol? La risposta accettata fornita nello SignalR comparison answer suggerisce di "Pensare alla comunicazione B2B". Tuttavia, quando penso alla comunicazione B2B, penso immediatamente ai servizi web - SOAP o REST (che - come ho capito fino a questo punto - utilizza verbi HTTP molto simili a WebHooks).

Sono stato interessato ad apprendere WebHooks e ho seguito questi post, ma rimane la confusione su come tutto questo si combini, specialmente quando sembra che altre tecnologie fondamentalmente facciano la stessa cosa. Sarebbe bello ottenere un chiarimento tra le due tecnologie.

risposta

5

È solo uno strato in cima allo stack "plain old mvc" che si occupa "automaticamente" di servizi saas specifici.

C'era una volta - Webhooks sono stati codificati manualmente

Pensate a codifica di un listener per un webhook Dropbox. Devi codificare tutti i parametri e la convalida da zero, devi sapere oauth2.0 (e capire come attivarlo), e devi capire quali hook sono disponibili.

Webhooks in asp.net let i ragazzi che hanno codificato Dropbox ALSO codificare i parametri e il codice skeleton per il tuo webhook. Quindi è più facile farlo subito in fretta.

Ovviamente, se si pubblicano i propri webhook, quindi forniscono l'impianto idraulico in modo da poter creare "osservatori" all'interno del codice e forniscono un modo automatico per gli altri di iscriversi a tali ascoltatori. Ancora una volta, puoi codificarti da solo, ma seguire gli standard è un modo semplice per assicurarti che gli altri non abbiano una curva di apprendimento ripida quando arriva il momento di consumare i TUO ami.

Think "NuGet per i servizi web"

Pensate a come NuGet cambiato radicalmente il processo per l'aggiunta di riferimenti al codice. Basta aggiungere pacchetti alla soluzione e il sistema si occupa di download, modifiche web.config, ecc.

Questo servizio fa la stessa cosa per i servizi Web Saas. Ora, come fornitore di servizi saas, possiamo codificare un piccolo pacchetto simile a nuget per scaricare/installare i listener. Non più articoli kb che spiegano come funzionano oauth1 vs oauth2 vs api-keys. Creiamo solo un piccolo wizard di installazione e via!

Eppure, quando abbiamo iniziato con Nuget, c'era un sottoinsieme di programmatori che chiedevano "qual è la differenza tra nuget e solo aggiungendo riferimenti al codice manualmente".

vs SignalR

SignalR è una connessione diretta "attiva" al server. Sta creando il tuo servizio di chat. Webhooks (il concetto generico) sono solo una chiamata http (s) a uno dei tuoi endpoint.Questo, penso, era il punto della risposta al tuo altro post dello stack.

Webhook il concetto vs MSFT "WebHook"

Msft sta prendendo che HTTPS POST un passo avanti e dire che Dropbox (o qualsiasi provider webhook) in grado di creare una procedura guidata per altri da usare che li passi attraverso l'autenticazione , parametri di ricerca, ecc. è una bella idea perché non avrai bisogno di leggere i documenti di Dropbox per consumare un webhook di Dropbox.

+0

"Pensa a 'nuget per i servizi Web'" vince l'interwebs questo giorno. Grazie per la tua grande risposta, @bri! –

+0

Un'altra domanda quindi: i webhook di .Net funzionano con altri webhook non- .Net? Per esempio, sto cercando di implementare Webhooks per supportare le integrazioni di Zapier ... ma i documenti sembrano suggerire che questo è per altri fornitori che hanno implementato "ricevitori" usando questa stessa utility. O è più generico? –

+0

Dropbox non è .net e questo è uno dei ganci disponibili fuori dalla scatola. Zapier avrebbe bisogno di creare il "pacchetto" del webhook ... A meno che tu non lo codifichi e lo pubblichi ;-). – bri

Problemi correlati