Les intégrations connectent une fois pour toutes un site à un service externe. Les requêtes utilisent une intégration pour récupérer des données sur une page, et les liaisons lisent le résultat sous la forme queries.name.data.
Intégrations
Ajoutez-en une dans l’espace de travail Data. Renseignez les paramètres de connexion, saisissez les secrets (jetons, mots de passe, clés d’API), enregistrez, puis cliquez sur Run test sous Test connection. Les administrateurs créent et modifient les intégrations ; les éditeurs peuvent les utiliser dans des requêtes et les tester.
Ce qu’il vous faut
Les libellés du formulaire viennent des noms des paramètres : ils s’affichent donc comme Base url ou Ssl.
- REST : la Base url, et pour l’authentification un Bearer token, un Username et un Password d’authentification basic, ou une API key avec le nom de son en-tête ou de son paramètre de requête.
- GraphQL : l’Endpoint, et un Bearer token ou une API key s’il demande une authentification.
- PostgreSQL : Host, Port, Database, User et Password, tirés des informations de connexion de votre fournisseur (dans Neon, Connect sur le tableau de bord du projet ; dans Supabase, Connect en haut du projet).
- Supabase : la Project url et une API key issues des réglages d’API du projet. La clé anon respecte la sécurité au niveau des lignes ; la clé service-role la contourne, alors réservez-la aux workflows serveur.
- Airtable : le Base id (la partie
app…de l’URL de la base) et un Personal access token avecdata.records:read(etdata.records:writepour modifier les enregistrements) sur cette base. - Google Sheets : le Spreadsheet id tiré de l’URL de la feuille, et une Service account key (JSON), la feuille étant partagée avec l’adresse e-mail du compte de service. Une API key suffit pour lire les feuilles publiées sur le web.
- Resend : un expéditeur Default from sur un domaine vérifié dans Resend, et une API key ; une clé limitée à l’envoi suffit.
- Claude : une API key depuis la Claude Console.
- OpenAI : une API key depuis la plateforme OpenAI. Base url peut pointer vers n’importe quelle API compatible OpenAI.
PostgreSQL
Renseignez l’hôte, le port, la base de données et l’utilisateur, et le mot de passe comme secret. Utilisez un rôle qui n’a que les droits dont le site a besoin. Écrivez le SQL avec des espaces réservés $1, $2… et passez les valeurs dans params ; les valeurs ne sont jamais collées dans le SQL. Query s’exécute dans une transaction en lecture seule et ne peut donc pas modifier les données ; Execute peut écrire. Les résultats reviennent sous la forme { rows, rowCount, columns, truncated } : définissez le chemin de réponse sur rows pour une liste de collection.
Créer une requête
Choisissez l’intégration et l’opération
Par exemple REST Request, GraphQL Query ou CMS List items.
Renseignez l’entrée
N’importe quelle valeur d’entrée peut être une expression. Lisez des variables pour que la requête réagisse :
vars.search,page.params.slug.Choisissez quand elle s’exécute
Choisissez un mode (voir ci-dessous). Exécutez-la une fois dans l’éditeur pour voir le résultat et obtenir l’autocomplétion sur ses champs.
Affinez le résultat
Définissez un response path comme
data.itemspour quequeries.products.datasoit le tableau voulu.
{
"name": "products",
"integrationId": "int_shop_api",
"operation": "rest.request",
"input": {
"method": "GET",
"path": "/products",
"query": { "search": { "$expr": "vars.search" } }
},
"responsePath": "data.items",
"run": { "mode": "client", "on": "load", "debounceMs": 250 }
}
Statique, serveur ou client
| Mode | S’exécute | À utiliser pour |
|---|---|---|
| Static | à la publication ; le résultat est intégré au HTML | les pages marketing, le contenu du CMS, le meilleur SEO |
| Server | à chaque requête sur l’edge, avec un cache facultatif de N secondes | les données fraîches ou personnalisées qui doivent quand même être indexées |
| Client | dans le navigateur, au chargement et à chaque changement de ses entrées (avec anti-rebond), ou uniquement depuis des workflows | la recherche, les filtres, les tableaux de bord |
Lire une requête
queries.name.data: le résultat.queries.name.loading: vrai pendant l’exécution. Liez-y la visibilité d’un indicateur de chargement.queries.name.error:{ message, code }ou null.queries.name.updatedAt: le moment où le dernier résultat est arrivé.
Rechargez une requête client depuis un workflow avec Refetch query. Pour exécuter depuis une page une opération qui écrit des données ou coûte de l’argent, utilisez Run server workflow avec un workflow serveur appelé depuis les pages. Les listes de collection affichent les résultats des requêtes sous forme de liste.