Skava Skava / Wiki

Elementi personalizzati: API

Un'interfaccia API è un modulo i cui valori compilati Skava invia come JSON a un indirizzo da te specificato (il tuo backend). In questo modo puoi connettere Skava in modo sicuro con i tuoi sistemi.

i

Gestisci le interfacce API nella Webapp sotto Elementi personalizzati → attiva Interfacce API. La creazione e la modifica sono riservate agli amministratori aziendali; le interfacce rilasciate possono poi essere attivate da tutti i membri dell'azienda.

Configura un'interfaccia API

Un'interfaccia è composta da campi di input (che formano il JSON), l'indirizzo di destinazione e l'autenticazione.

  1. Crea campi: Ogni campo ha una chiave JSON. A destra vedi in anteprima la visualizzazione JSON, che viene inviata al tuo backend esattamente in questo modo.
  2. Indirizzo (URL): l'indirizzo https:// del tuo backend. Sono consentiti solo indirizzi HTTPS e pubblicamente accessibili (vedi Sicurezza sotto).
  3. Metodo: POST (predefinito), PUT, PATCH o GET. Con GET i valori vengono aggiunti come parametri di query invece di essere inviati nel corpo.
  4. Autenticazione: Imposta il nome dell'intestazione (ad esempio Authorization) e il prefisso del valore (ad esempio Bearer ), quindi salva il token. Facoltativamente imposta una data di scadenza.
  5. Campi di risposta (opzionali): Definisci tramite percorso quali valori dalla risposta del backend devono essere visualizzati: ad esempio order.id o items[0].sku.
  6. Verifica con Ping e Richiesta di prova, poi Rilascia.
Skava webapp: Scheda Campi di un'interfaccia API. In alto i valori di contesto inclusi automaticamente (nome utente, azienda, progetto…), sotto i campi personalizzati con chiave JSON, a destra l'anteprima del modulo e l'anteprima JSON in tempo reale.
La scheda Campi: ogni campo ottiene una chiave JSON. In alto, valori di contesto come utente, azienda e nome del progetto sono inclusi automaticamente. A destra vedi il modulo e l'anteprima JSON in tempo reale: esattamente ciò che viene inviato al tuo backend.
Skava webapp: Scheda Endpoint di un'interfaccia API con campi per URL, metodo POST, timeout, header di autenticazione, prefisso valore Bearer e l'input per il token crittografato.
La scheda Endpoint: indirizzo di destinazione (solo HTTPS), metodo, timeout e header di autenticazione più prefisso valore. Il token è memorizzato in modo crittografato e non viene mai inviato ai client.
Skava webapp: Scheda Risposte di un'interfaccia API. Un campo Risposta con chiave JSON Success è configurato, a destra un'anteprima di come il risultato apparirà nella chat.
La scheda Risposta (opzionale): definisci tramite percorso quali valori dalla risposta del backend vengono visualizzati. A destra, l'anteprima della scheda del risultato come appare successivamente nella chat.

Memorizza il token in modo sicuro

Il token viene memorizzato crittografato e non viene mai restituito ai client: l'app mostra solo se un token è impostato e quando scade. Durante l'invio, l'app lo aggiunge lato server all'intestazione configurata. Se imposti una data di scadenza, Skava rifiuta la chiamata dopo la scadenza e ti chiede di rinnovare il token.

Test: Ping e Richiesta di prova

  • Ping : un controllo leggero di raggiungibilità. Verifica solo se il tuo indirizzo risponde, senza inviare token o dati del modulo. Mostra raggiungibilità, stato e tempo di risposta. Ideale come primo passo.
  • Test Richiesta : la vera prova: invia dati di esempio inclusi token al tuo indirizzo e mostra la risposta completa, oltre ai campi di risposta estratti.

Come amministratore, puoi eseguire entrambi anche in modalità bozza per verificare l'integrazione prima del rilascio.

Skava webapp: Scheda Test di un'interfaccia API con i pulsanti Ping e Test Richiesta, il risultato Status 200 OK, il tempo di risposta e la risposta JSON completa dal backend.
La scheda Test : Ping e Test Richiesta affiancati. Qui con stato 200, tempo di risposta e la risposta completa del backend in formato JSON.

Bozza e Pubblicazione

Ogni interfaccia inizia come una bozza e può essere modificata liberamente. Quando tutto è pronto, la pubblichi con Pubblica.

!

Le interfacce pubblicate sono immutabili. Questo è intenzionale: in modo che dopo la pubblicazione nessuno possa segretamente sostituire l'indirizzo di destinazione o il token. Se vuoi cambiare qualcosa, crea una nuova versione.

Sicurezza

i

Per evitare che l'interfaccia venga utilizzata in modo improprio, si applicano regole rigorose: sono ammessi solo indirizzi HTTPS, e l'indirizzo deve puntare a un indirizzo pubblico: gli indirizzi interni (ad esempio, localhost, reti private o metadati cloud) vengono rifiutati. Skava verifica questo ad ogni chiamata, si connette esattamente all'indirizzo verificato, non segue reindirizzamenti e limita il timeout e le dimensioni della risposta.

Come il team utilizza un'interfaccia rilasciata

Una volta che un'interfaccia è rilasciata, tutti i membri dell'azienda possono attivarla direttamente da una chat: non è necessario l'editor. Il flusso è lo stesso dei modelli di documento: seleziona, compila, invia.

  1. Nella chat, tocca Più in basso e scegli Elemento personalizzato.
  2. Scegli il modello o l'interfaccia desiderata dall'elenco.
  3. Compila il modulo e Invia.
  4. Il risultato appare come una card nella chat: visibile a tutti nella chat.
Skava webapp: il menu più (+) nel campo di inserimento della chat con le voci Allega file, Foto/Video, Crea todo, Crea servizio e Elemento personalizzato.
Passo 1: tramite il menu Più, scegli Elemento personalizzato.
Skava webapp: Dialogo Scegli Elemento personalizzato sopra la chat, che offre l'azione API Materiale d'opera; le card risultato sono già state inviate in background.
Passo 2: seleziona il modello o l'interfaccia desiderata: qui l'azione API Materiale d'opera.
Skava webapp: modulo di compilazione dell'azione API Ordine di materiale con i campi numero articolo, descrizione, quantità, unità, data di consegna richiesta e nota, più l'avviso sui valori inclusi automaticamente.
Passo 3: compila il modulo. L'avviso in basso indica quali valori sono inclusi automaticamente.
Skava webapp: scheda risultato dell'azione API Ordine di materiale nella chat con stato 200, i valori inseriti e la risposta del backend (numero d'ordine, stato, data di consegna) più dati grezzi espandibili.
Passo 4: la scheda risultato nella chat, con gli input e la risposta del tuo backend.

Lascia che l'IA crei un elemento

Come amministratore aziendale, non devi usare l'editor direttamente. Comunica all'assistente Skava nella chat, ad esempio "creami un modulo d'ordine per il mio catalogo con quantità e indirizzo di consegna". Esso crea una bozza, puoi modificare i campi uno alla volta in seguito, e conosce il tuo catalogo articoli caricato: per gli ordini suggerisce il selettore prodotti invece di un campo di testo per il numero di articolo.

Cosa potrebbe anche impostare: endpoint e metodo così come il pubblico ("solo membri dell'azienda" o "anche esterni nella stessa chat"). Per il pubblico chiede prima invece di impostarlo direttamente, perché decide chi può eseguire qualcosa dall'esterno.

Cosa non tocca esplicitamente: il token di accesso. Non lo chiede mai e non lo accetta mai, perché i messaggi della chat sono archiviati. Lo inserisci tu nell'editor, altrimenti non vengono inviate chiamate. E non può pubblicare: l'ultimo passaggio resta a te, così nulla diventa visibile ai clienti senza verifica.

Chi può eseguirlo

La scheda "Endpoint" indica chi può usare un elemento. L'impostazione predefinita sono i membri della tua azienda. La seconda impostazione lo apre agli esterni, ma solo in una chat in cui è presente anche qualcuno della tua azienda: esattamente il caso per cui è destinato, il cliente che ordina da te. Quando la tua azienda lascia la chat, l'autorizzazione termina automaticamente.

Prodotti dal tuo catalogo

Una volta caricato il catalogo articoli, il builder offre un blocco selettore prodotti. Non ci sono opzioni di mantenimento: la lista è il tuo catalogo. Chi ordina lo cerca, vede l'immagine, il nome e il numero articolo, e il tuo backend riceve il numero articolo. Skava rifiuta un numero che non è nel tuo catalogo. Per la quantità, inserisci un campo numerico normale accanto.

Definisci la scheda da solo

Il tuo backend decide cosa dice la scheda. Skava controlla solo forma, dimensione e sicurezza, mai il significato: non conosce né stati dell'ordine né nomi dei campi. Per farlo, rispondi con un oggetto card:

{"card": {"v": 1, "title": "Order 10001", "state": "pending", "status_text": "Being picked", "fields": [{"label": "Tracking number", "value": "DPD123456789"}]}}

  • v deve essere l'intero 1. Senza di esso la risposta non conta come una scheda e la mappatura della risposta configurata nell'elemento si applica.
  • state è solo colore e icona: ok, pending, warn o error. Qualsiasi cosa abbia significato va in status_text come testo libero.
  • fields è una lista di etichetta e valore, al massimo 20 voci. I valori troppo lunghi vengono abbreviati invece di essere rifiutati, quindi un ordine non fallisce per un dettaglio.

Gli input dell'utente appartengono al server: rimangono intatti, a prescindere da ciò che invia il tuo backend. Sono la registrazione nella chat di ciò che è stato effettivamente inviato.

Segnalazione dello stato in un secondo momento

Quando l'elemento viene eseguito, Skava invia due valori extra: callback_url e callback_token. Segnala un nuovo stato lì in seguito e appare una nuova card nella chat, anche sul telefono, mentre qualcuno sta guardando. Quella precedente rimane, quindi è leggibile quando è stato segnalato uno stato. Invia lo stesso oggetto card come sopra, tramite POST con l'intestazione Authorization: Bearer <callback_token>. Tre valori opzionali seguono la card:

  • seq: il tuo contatore. Un report con un valore inferiore o uguale viene scartato, quindi due report non possono superarsi a vicenda.
  • final: chiude l'interazione. Il token diventa non valido e la card è definitiva.
  • notify: impostato su false per pubblicare la card in silenzio, senza numero di messaggi non letti e senza notifica. Per passaggi intermedi che non devono disturbare nessuno. In sua assenza, la card è un messaggio perfettamente normale.

Un'interazione può pubblicare al massimo 50 card. Lo stesso report due volte non produce una seconda card.

Skava risponde con 200 e una lista di hints se qualcosa è stato abbreviato o eliminato, e con 422 se la card non era utilizzabile. Un'interazione accetta report per 90 giorni.

Le schede vengono pubblicate dal sistema mittente di Skava, non dalla persona che ha eseguito l'elemento né da un account della tua azienda. Nel titolo della scheda è indicato il sistema che sta scrivendo.

Un esempio completo da copiare si trova nel repository in example_order_server/ ed è accessibile a api.skava.io.

Correlato

Preferisci invece creare un modello di documento compilabile? Consulta Elementi personalizzati: Documenti.

Domande frequenti

Cos'è un'interfaccia API in Skava?

Un modulo i cui valori compilati Skava invia come JSON a un indirizzo da te specificato (il tuo backend): utile per collegare Skava ai tuoi sistemi.

Chi può creare e attivare interfacce API?

La creazione e la modifica sono riservate agli amministratori aziendali. Un'interfaccia pubblicata può quindi essere attivata da tutti i membri dell'azienda.

Qual è la differenza tra "Ping" e "Richiesta di prova"?

Ping verifica solo se l'indirizzo è raggiungibile: senza token e senza dati. Richiesta di prova invia dati di esempio comprensivi di token e mostra la risposta completa.

Il mio token API è sicuro?

Sì. Il token è memorizzato in forma crittografata e non viene mai trasmesso ai clienti. L'app mostra solo se un token è impostato e quando scade.

Quali indirizzi sono ammessi come endpoint?

Solo indirizzi https:// pubblicamente accessibili. Target interni come localhost, reti private o metadati cloud vengono rifiutati: questo protegge dall'uso improprio dell'interfaccia.

Perché non posso più modificare un'interfaccia rilasciata?

Le interfacce rilasciate sono intenzionalmente immutabili: in modo che, dopo il rilascio, nessuno possa sostituire l'indirizzo di destinazione o il token. Per le modifiche, si crea una nuova versione.