I webhook sono una funzionalità ArcGIS Enterprise che fornisce automaticamente ai ricevitori di webhook o ad altre applicazioni informazioni guidate da eventi. ArcGIS Enterprise supporta due tipi di webhook:
- Webhook dell'organizzazione: gli amministratori possono sottoscrivere trigger per gli eventi relativi a utenti, gruppi ed elementi di un'organizzazione.
- Webhook di servizi: gli amministratori possono sottoscrivere webhook per i servizi di geoprocessing e i feature service.
- Webhook di geoprocessing: gli amministratori possono impostare webhook di servizi di geoprocessing da richiamare al completamento di un processo di servizio di geoprocessing.
- Webhook di feature service: gli amministratori possono sottoscrivere trigger per gli eventi relativi ai feature service dell'organizzazione.
Tutti i webhook di ArcGIS Enterprise seguono un processo simile. Una volta attivato il webhook, le informazioni sull'evento vengono fornite in uno schema JSON contenente le informazioni pertinenti, specifiche per ogni tipo di webhook. Ogni tipo di webhook ha eventi specifici che possono essere sottoscritti. Ad esempio, i webhook dell'organizzazione possono essere richiamati quando un elemento è stato pubblicato o quando è stato creato un nuovo account utente. I webhook di feature service possono essere azionati quando uno schema di feature layer è stato modificato. I webhook di servizi di geoprocessing forniscono informazioni sugli eventi solo quando un processo di servizio di geoprocessing è stato completato.
Con le informazioni sull'evento fornite, le piattaforme ricevitore eseguono un'azione specifica che notifica l'evento ai membri dell'organizzazione e agli amministratori. A seconda delle esigenze dell'organizzazione, può trattarsi dell'invio di e-mail a membri specifici o amministratori di messaggistica in Slack.
Poiché i webhook forniscono notifiche quando si verifica un evento, possono essere più efficaci del polling. A differenza del polling, i webhook non richiedono alle applicazioni di controllare continuamente il sistema per verificare se si è verificato un evento specifico.
Scenario: webhook dell'organizzazione
Si consideri uno scenario in cui un'organizzazione ArcGIS Enterprise ha una serie di standard specifici che ogni elemento deve soddisfare prima di poter essere condiviso pubblicamente. Gli amministratori di questa organizzazione vogliono creare un flusso di lavoro che consenta di rispondere in tempo reale quando viene condiviso un elemento che non soddisfa gli standard. Vogliono sfruttare i webhook per ricevere una notifica quando il proprietario di un elemento lo condivide pubblicamente e utilizzare le informazioni dell'evento nel payload come parte di uno script che invierà un messaggio solo agli amministratori se l'elemento non soddisfa gli standard. In questo modo, gli amministratori hanno la possibilità di aggiornare l'elemento o di annullarne la condivisione pubblica.
L'elenco seguente illustra come gli amministratori dell'organizzazione possono sfruttare i webhook per creare questo flusso di lavoro:
- Gli amministratori dell'organizzazione impostano il ricevitore webhook per la scrittura dei payload in arrivo come file di testo locali.
- Gli amministratori creano uno script Python che analizza il file di testo del payload per estrarre le informazioni rilevanti sull'elemento e sull'operazione eseguita. Lo stesso script consente agli amministratori di rispondere a queste informazioni inviando una notifica a un canale Slack designato. Se un elemento viene condiviso pubblicamente ma non soddisfa gli standard per la pubblicazione, lo script utilizza l'API Slack per inviare un messaggio con le informazioni mancanti o errate agli amministratori dell'organizzazione.
- Una volta creato lo script, gli amministratori creano un webhook che si aziona quando il proprietario di un elemento lo condivide.
- Quando un elemento viene condiviso, lo script analizza il file di testo del payload e determina se l'elemento è stato condiviso pubblicamente o all'interno dell'organizzazione. Se l'elemento è condiviso all'interno dell'organizzazione, non viene intrapresa alcuna azione aggiuntiva. Se l'elemento è condiviso pubblicamente, lo script lo valuterà in base agli standard dell'organizzazione impostati. Se il punteggio è basso (cioè gli standard di pubblicazione non risultano soddisfatti), gli amministratori riceveranno una notifica nel proprio canale Slack riguardo all'elemento specifico condiviso e ai metadati che non soddisfano gli standard.
- Un amministratore dell'organizzazione può quindi rispondere aggiornando i metadati per soddisfare gli standard, scegliendo di annullare la condivisione dell'elemento o inviando un messaggio al proprietario dell'elemento per far apportare le modifiche necessarie, direttamente da Slack.