Aller au contenu

Connecter une source de données

Pour intégrer du contenu depuis WordPress, Strapi ou n'importe quelle API GraphQL dans Silex, vous devez ajouter une source de données. Cette page vous guide à travers la boîte de dialogue des paramètres.

Ouvrir les paramètres de source de données

Dans l'éditeur Silex :

  1. Ouvrez les Paramètres du site (bouton Settings dans la barre de gauche, ou Alt+S)
  2. Ouvrez l'onglet CMS
  3. Cliquez sur Add Your First Data Source, ou sur le bouton + à côté de Data Sources

Une boîte de dialogue s'ouvre avec les champs pour la connexion API. Elle a deux étapes : la connexion (libellé, URL, en-têtes), puis le type de backend.

Remplir les informations de base

Libellé — Un nom pour cette source de données (par exemple, "Mon site WordPress"). C'est uniquement pour vous dans l'éditeur ; les utilisateurs ne le voient jamais.

URL — Le point d'accès GraphQL. Exemples :

  • WordPress : https://votresite.com/graphql
  • Strapi : https://votresite.com/graphql
  • Supabase : https://votreprojet.supabase.co/graphql/v1 (voir Configuration Supabase)

Consultez la documentation de votre fournisseur d'API pour l'URL exacte du point d'accès.

Puis cliquez sur Next (voir Tester la connexion).

Type de backend — Dans la seconde étape, sélectionnez la plateforme à laquelle vous vous connectez :

  • GraphQL — n'importe quelle API GraphQL. C'est le choix par défaut
  • WordPress — WordPress avec WPGraphQL
  • GitLab — l'API GraphQL de GitLab
  • Strapi
  • Supabase

WordPress, GitLab, Strapi et Supabase sont marqués BETA dans la boîte de dialogue. Silex s'en sert pour choisir les types et les champs affichés par défaut. Si votre plateforme n'est pas dans la liste, gardez GraphQL.

La boîte de dialogue Ajouter une source de données montrant les options de type de backend : GraphQL, WordPress, GitLab, Strapi et Supabase

Ajouter des en-têtes d'authentification (si nécessaire)

Certaines API nécessitent une authentification. Si votre API est protégée par mot de passe ou nécessite une clé API :

  1. Dans la boîte de dialogue de source de données, ouvrez HTTP Headers
  2. Un en-tête Content-Type est déjà là : gardez-le. Cliquez sur Add a header
  3. Entrez le nom de l'en-tête (généralement Authorization)
  4. Entrez la valeur de l'en-tête (généralement un jeton ou une clé API)

Exemple pour WordPress avec du contenu privé :

Header: Authorization
Value: Bearer YOUR_JWT_TOKEN

Demandez à votre administrateur WordPress ou fournisseur d'API le format d'en-tête correct.

Tester la connexion

Après avoir rempli l'URL et les en-têtes :

  1. Cliquez sur Next
  2. Silex récupère le schéma depuis votre API
  3. Si ça fonctionne, la seconde étape s'ouvre : choisissez le type de backend et cliquez sur Apply. La source de données affiche Connected dans l'onglet CMS
  4. En cas d'échec, une erreur s'affiche sous le formulaire, par exemple « Error: Failed to fetch type names: Failed to fetch ». Le navigateur donne ce message quand l'URL est fausse, quand l'API est hors service, ou quand l'API n'accepte pas les requêtes venant de Silex (CORS, le fournisseur de l'API doit le configurer). Ouvrez la console du navigateur pour voir la cause exacte

Plus tard, le bouton Test à côté d'une source de données vérifie à nouveau la connexion.

L'onglet des paramètres CMS montrant une source de données WordPress connectée avec son URL de point d'accès GraphQL et le statut "Connected"

Afficher ou masquer des types

Votre API propose des types : les sortes de données qu'elle contient (pour WordPress : Post, Page, Category, User…). Ils sont listés à la seconde étape de la boîte de dialogue. Pour y revenir plus tard, cliquez sur la source de données dans l'onglet CMS, puis sur Options.

Ouvrez Show / hide fields in the expressions : chaque type a une case à cocher et sa nature (object, scalar…). Décochez les types que vous ne voulez pas voir dans vos expressions. Search types... filtre la liste, Reset to Defaults la rétablit.

Pour voir les champs d'un type, utilisez le menu + quand vous liez des données.

Comprendre les types de champs

Dans le menu + d'une expression, chaque champ affiche son type entre parenthèses, par exemple title (string), comments (commentspage{}) ou data (post[]). Il y a trois sortes :

Scalar — une valeur unique (texte, nombre, date, vrai/faux).

Object ({}) — une valeur avec ses propres champs. Exemple : le champ "author" d'un article est un objet avec des champs comme name, email, bio.

List ([]) — plusieurs entrées d'un type. Exemple : "posts" est une liste d'objets article.

Lorsque vous liez des données, vous enchaînez ces types : author → name va de l'auteur d'un article (un objet) au nom de l'auteur. Les noms de champs dépendent de votre API.

Modifier ou supprimer une source de données

Une fois ajoutée, votre source de données apparaît dans les paramètres. Pour la modifier :

  1. Dans l'onglet CMS, cliquez sur la source de données. La boîte de dialogue Edit Data Source s'ouvre
  2. Changez le libellé, l'URL ou les en-têtes. Options mène à la seconde étape : type de backend et types à afficher
  3. Cliquez sur Apply

Pour la supprimer, cliquez sur Delete à côté de la source de données, puis confirmez.

Dépannage

Pour une erreur au clic sur Next, voir Tester la connexion.

Toujours bloqué ? Ouvrez un ticket sur GitHub avec les étapes pour reproduire le problème, ou posez la question dans le chat communautaire.

En savoir plus


Quiz

Q1 : Le point d'accès GraphQL de votre site WordPress est à https://monblog.com/graphql. Où le saisissez-vous dans Silex ?

  • A) Dans le champ URL de la boîte de dialogue de source de données
  • B) Dans le champ Libellé
  • C) Il est détecté automatiquement
Réponse

A) Dans le champ URL de la boîte de dialogue de source de données — Vous collez l'URL complète du point d'accès GraphQL dans les paramètres de source de données pour que Silex sache d'où récupérer les données.

Q2 : Vous configurez une source de données pour une API WordPress privée qui nécessite une authentification. Qu'ajoutez-vous à la boîte de dialogue ?

  • A) Le nom d'utilisateur et le mot de passe dans l'URL
  • B) Un en-tête Authorization avec le jeton API
  • C) Le jeton JWT dans le champ libellé
Réponse

B) Un en-tête Authorization avec le jeton API — Les en-têtes d'authentification sont séparés de l'URL. Ajoutez un en-tête (généralement nommé "Authorization") avec la valeur du jeton que votre fournisseur d'API vous donne.

Q3 : Vous avez sélectionné "WordPress" comme type de backend. Qu'est-ce que cela fait ?

  • A) Cela installe WordPress sur votre serveur
  • B) Cela se connecte spécifiquement à WordPress et ne fonctionnera pas avec d'autres plateformes
  • C) Cela choisit les types et les champs WordPress affichés par défaut
Réponse

C) Cela choisit les types et les champs WordPress affichés par défaut — Silex se sert du type de backend pour choisir ce que vos expressions affichent par défaut. N'importe quelle API GraphQL fonctionne avec l'option "GraphQL" si votre plateforme n'est pas listée.

Q4 : Quand vous cliquez sur Next, Silex affiche « Failed to fetch ». L'URL est juste et l'API fonctionne. Quelle est la cause probable ?

  • A) Votre URL est incorrecte
  • B) Votre fournisseur d'API n'a pas configuré CORS pour autoriser les requêtes depuis Silex
  • C) Le libellé est vide
Réponse

B) Votre fournisseur d'API n'a pas configuré CORS pour autoriser les requêtes depuis Silex — CORS (Cross-Origin Resource Sharing) est une fonctionnalité de sécurité du navigateur. Votre fournisseur d'API doit explicitement autoriser les requêtes depuis le domaine de Silex. La console du navigateur montre la cause exacte.

Éditer cette page sur GitLab