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 collegare Skava in modo sicuro ai 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 pubblicate 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 riceve una chiave JSON. A destra è visibile in tempo reale l'anteprima 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 accessibili pubblicamente (vedi Sicurezza di seguito).
  3. Metodo: POST (predefinito), PUT, PATCH o GET. Con GET i valori vengono aggiunti come parametri di query invece di essere inviati nel corpo della richiesta.
  4. Autenticazione: Imposta il nome dell'header (es. Authorization) e il prefisso del valore (es. Bearer ), quindi salva il token. Facoltativamente, imposta una data di scadenza.
  5. Campi di risposta (facoltativo): Definisci tramite percorso quali valori dalla risposta del backend devono essere visualizzati: es. order.id o items[0].sku.
  6. Verifica con Ping e Test Request, poi Release.
Webapp Skava: scheda Fields di un'interfaccia API. In alto i valori di contesto inclusi automaticamente (nome utente, azienda, progetto ...), in basso i campi personalizzati con chiave JSON, a destra l'anteprima del modulo e l'anteprima JSON live.
La scheda Fields: ogni campo riceve una chiave JSON. In alto, i valori di contesto come utente, azienda e nome progetto sono inclusi automaticamente. A destra vedi il modulo e il JSON live: esattamente ciò che viene inviato al tuo backend.
Webapp Skava: scheda Endpoint di un'interfaccia API con campi per URL, metodo POST, timeout, header di autenticazione, prefisso valore Bearer e input per il token crittografato.
La scheda Endpoint: indirizzo di destinazione (solo HTTPS), metodo, timeout e header di autenticazione con prefisso valore. Il token è memorizzato in modo crittografato e non viene mai consegnato ai client.
Webapp Skava: scheda Anteprima di un'interfaccia API. Un campo di risposta con chiave JSON Success è configurato; a destra l'anteprima di come risulterà nel chat.
La scheda Anteprima (facoltativa): definisci tramite percorso quali valori della risposta del backend vengono visualizzati. A destra Skava costruisce la card del risultato da questi, esattamente come apparirà successivamente nel chat.

Conserva il token in modo sicuro

Il token è memorizzato cifrato e non viene mai restituito ai clienti: l'app mostra solo se è presente un token e quando scade. All'invio, Skava lo aggiunge lato server nell'header configurato. 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 test

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

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

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

Bozza e rilascio

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

!

Dopo il rilascio, indirizzo di destinazione, metodo, campi, intestazione di autenticazione e limite di tempo sono fissati. È intenzionale: nessuno può deviare silenziosamente la destinazione dei dati. Esattamente tre elementi restano modificabili, perché le operazioni ne hanno bisogno: il token e la sua scadenza (così un token scaduto o compromesso può essere sostituito) e il pubblico, ovvero se solo il tuo team o anche le aziende partner possono attivarla in chat. Per qualsiasi altra modifica crei una nuova versione.

Sicurezza

i

Per prevenire l'uso improprio dell'interfaccia, si applicano regole rigorose: sono consentiti solo indirizzi HTTPS e l'indirizzo deve puntare a un indirizzo di destinazione pubblico: gli indirizzi interni (ad esempio localhost, reti private o metadati cloud) vengono rifiutati. Skava verifica questo a ogni chiamata, si connette esattamente all'indirizzo verificato, non segue reindirizzamenti e limita timeout e dimensione della risposta.

Come il team utilizza un'interfaccia pubblicata

Una volta pubblicata un'interfaccia, tutti i membri dell'azienda possono attivarla direttamente da una chat, senza bisogno di un editor. Non esiste un punto di accesso collettivo né una finestra di dialogo intermedia: ogni elemento pubblicato compare nel menu più con il proprio nome, accompagnato dal logo dell'azienda che lo offre.

  1. Nella chat, tocca Plus in basso e seleziona l'elemento desiderato, ad esempio Material order.
  2. Compila il modulo e tocca Send.
  3. Il risultato appare come una scheda nella chat, visibile a tutti i partecipanti.
Web app di Skava: modulo compilabile dell'azione API Ordine materiali con i campi numero articolo, descrizione, quantità, unità, data di consegna richiesta e nota, oltre alla nota sui valori inclusi automaticamente.
Passaggio 3: compila il modulo. La nota in basso mostra quali valori vengono inclusi automaticamente.
Web app di Skava: scheda risultato dell'azione API Ordine materiali nella chat con stato 200, i valori inseriti e la risposta del backend (numero ordine, stato, data di consegna) oltre ai dati grezzi espandibili.
Passaggio 4: la scheda risultato nella chat, con gli input e la risposta del tuo backend.

Fai costruire un elemento all'AI

Come amministratore aziendale non devi usare tu stesso l'editor. Dì all'assistente Skava nella chat, ad esempio "creami un modulo d'ordine per il mio catalogo con quantità e indirizzo di consegna". Da questo crea una bozza, può modificare i campi uno alla volta in seguito e conosce il catalogo articoli che hai caricato: per gli ordini suggerisce il selettore prodotti anziché un campo di testo per il numero articolo.

Cosa può impostare anche: endpoint e metodo oltre al pubblico ("solo membri aziendali" 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 vengono salvati. Lo inserisci tu stesso nell'editor, altrimenti nessuna chiamata viene inviata. E non può pubblicare: l'ultimo passo resta a te, così nulla diventa visibile ai clienti senza verifica.

Chi può eseguirlo

La scheda "Endpoint" indica chi può usare un elemento. Il valore predefinito 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 è pensato, il cliente che ordina da te. Quando la tua azienda lascia la chat, il permesso termina da solo.

Prodotti dal tuo catalogo

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

Definisci la scheda tu stesso

Il tuo backend decide cosa dice la scheda. Skava controlla solo forma, dimensione e sicurezza, mai il significato: non conosce né gli stati dell'ordine né i 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 scheda e si applica la mappatura della risposta configurata nell'elemento.
  • state è solo colore e icona: ok, pending, warn o error. Tutto ciò che porta significato va in status_text come testo libero.
  • fields è un elenco di etichette e valori, massimo 20 voci. I valori troppo lunghi vengono abbreviati invece di essere rifiutati, così un ordine non fallisce mai per un dettaglio.

Gli input dell'utente appartengono al server: restano intatti indipendentemente da ciò che invia il backend. Sono la traccia nella chat di ciò che è stato effettivamente inviato.

Segnalare lo stato in seguito

Quando l'elemento viene eseguito, Skava invia due valori aggiuntivi: callback_url e callback_token. Segnala lì un nuovo stato in seguito e una nuova scheda appare nella chat, anche sul telefono, mentre qualcuno la sta guardando. La precedente resta, così è leggibile quale stato è stato segnalato. Invia lo stesso oggetto card di cui sopra, tramite POST con l'intestazione Authorization: Bearer <callback_token>. Tre valori opzionali vanno accanto alla scheda:

  • seq: il tuo contatore. Un report con un valore minore 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: impostalo su false per pubblicare la card in silenzio, senza conteggio dei non letti e senza notifica. Per i passaggi intermedi che non devono svegliare nessuno. Senza di esso, la card è un messaggio perfettamente normale.

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

Skava risponde con 200 e un elenco di hints se qualcosa è stato accorciato o scartato, e con 422 se la card era inutilizzabile. Un'interazione accetta report per 90 giorni.

Le carte vengono pubblicate dal mittente di sistema di Skava, non dalla persona che ha eseguito l'elemento e non da un account della tua azienda. Il titolo della carta indica di quale sistema si tratta.

Un esempio completo da copiare si trova nel repository sotto example_order_server/ ed è disponibile su api.skava.io.

Correlati

Vuoi invece creare un modello di documento compilabile? Consulta Custom Elements: 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ò poi essere attivata da tutti i membri dell'azienda.

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

Ping verifica solo se l'indirizzo è raggiungibile: senza token e senza dati. Richiesta di test invia dati di esempio, incluso il token, e mostra la risposta completa.

Il mio token API è sicuro?

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

Quali indirizzi sono consentiti come endpoint?

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

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

Indirizzo di destinazione, metodo, campi e intestazione di autenticazione sono fissati dopo il rilascio, così nessuno può reindirizzare silenziosamente la destinazione dei dati. Il token, la sua scadenza e il pubblico (solo il proprio team o anche le aziende partner) restano modificabili; è esattamente così che si sostituisce un token scaduto. Per qualsiasi altra modifica si crea una nuova versione.