API di FlavosoPrimi passiConcetti
Concetti
App, locali, collegamenti, token, permessi, prova e reale: i termini che ricorrono in tutta questa documentazione.
Il modello
Flavoso è un sistema di ordinazione per ristoranti. Ogni locale ha la propria pagina ordini, il proprio menu, la propria cucina e la propria dashboard. La tua app lavora per conto di un locale dopo che il suo titolare ha dato il consenso.
App
client_id, permessi, un webhook
Collegamento A
Consenso di un titolare, con permessi e token
Locale A
un ristorante con menu, ordini, orari
Collegamento B
Consenso di un titolare, con permessi e token
Locale B
un ristorante con menu, ordini, orari
Un'app ha molti collegamenti, al massimo uno attivo per locale. Un token vale per un solo collegamento, quindi per un solo locale.
App
Un'app è il tuo software così come lo conosce Flavoso: creata nella console, con client ID (flv_app_…), tipo di client, URI di reindirizzamento, i permessi che può richiedere e un webhook. Un'app può essere collegata a un numero qualsiasi di locali; un account ha al massimo 10 app.
Ogni app ha uno stato: in sviluppo, in revisione, approvata, rifiutata o bloccata. Fino all'approvazione si collega solo al tuo locale di prova e ai locali di cui sei tu stesso titolare.
Locale
Un locale è un ristorante su Flavoso. Nell'API si chiama tenant: con id, name, slug (la parte dell'indirizzo della sua pagina ordini), timezone, currency e country. GET /me lo indica.
Un locale ha un piano (Starter, Pro, Premium). L'API è inclusa in ogni piano; le prenotazioni sono disponibili dal piano Pro.
Collegamento
Un collegamento è il consenso di un titolare: questa app può lavorare con questo locale, con questi permessi. Il suo identificativo si chiama connection_id nella risposta dell'endpoint del token e in ogni evento, e id in GET /me, perché GET /me restituisce il collegamento stesso. Lì c'è anche il suo created_at.
Per ogni app e locale c'è al massimo un collegamento attivo. Se il titolare collega di nuovo l'app, da lì in poi valgono i nuovi permessi. Un collegamento termina quando il titolare scollega l'app, quando la tua app chiama DELETE /connection o quando Flavoso lo chiude; allora arriva app.disconnected.
Token
- Token di accesso (
flv_at_…): va in ogni richiesta, vale un'ora. - Token di aggiornamento (
flv_rt_…): serve a ottenere nuovi token di accesso, vale 180 giorni dal suo ultimo utilizzo e a ogni utilizzo viene sostituito da uno nuovo.
Ogni token appartiene a un solo collegamento e quindi a un solo locale. Un'app con cento locali gestisce cento coppie di token, meglio se salvate sotto il connection_id o il tenant.id.
Permessi
Nove permessi stabiliscono cosa può fare un collegamento, per esempio orders:write o menu:read. La scrittura include la lettura. Il titolare li vede in parole chiare quando collega l'app. I dettagli sono in Permessi.
Prova e reale
Non ci sono chiavi di prova separate né un secondo indirizzo. La differenza è il locale: un locale di prova non può mai andare online, e tutto ciò che viene da lì porta livemode: false, in GET /me e in ogni evento. La stessa app, gli stessi endpoint, gli stessi formati di token.
Oggetti e identificativi
Ogni oggetto ha il suo object (order, product, reservation, event …) e un id. Gli identificativi sono UUID, tranne per gli eventi (evt_…) e le richieste (req_…). Un identificativo non cambia mai, nemmeno quando il locale cambia nome o prezzo.
Puoi aggiungere i tuoi identificativi, per esempio il codice articolo della tua cassa, come external_id. Vedi Richieste.
Due direzioni
- La tua app chiede: REST su
https://api.flavoso.com/v1, JSON in entrambe le direzioni. - Flavoso segnala: ogni modifica come evento, consegnato via webhook o recuperato con GET /events.
Una modifica è la stessa ovunque avvenga: nella dashboard, sul display di cucina, nell'app per il telefono, alla stampante per scontrini o tramite l'API. Un evento la segnala esattamente una volta.
Qualcosa non è chiaro? Scrivi a support@flavoso.com indicando l'identificativo di X-Request-Id. Così troviamo la tua richiesta nel registro.