Créer une API
Créer une APICréer un endpoint personnalisé

Créer un endpoint personnalisé

En plus du single endpoint, Gato GraphQL prend également en charge les endpoints personnalisés, pour récupérer et publier des données pour un schéma personnalisé (contenant seulement un sous-ensemble des types disponibles) et des règles de validation utilisateur, afin de répondre aux besoins de différents utilisateurs et applications.

Nous pouvons créer autant d'endpoints personnalisés que nécessaire.

Par exemple, nous pouvons créer un endpoint personnalisé pour :

  • Un client ou utilisateur spécifique, sous /graphql/my-client/
  • Un groupe d'utilisateurs ayant plus d'accès aux fonctionnalités (comme les utilisateurs PRO), sous /graphql/pro-users/
  • Fournir des données à notre application mobile, sous /graphql/mobile-app/
  • Donner accès à une API tierce, sous /graphql/external-api/
  • Autres cas

Éditeur de Custom Endpoint

Exécuter le custom endpoint dans une application

Veuillez suivre les instructions du guide Connexion au serveur GraphQL depuis un client.

Accéder à tous les custom endpoints

En cliquant sur "Custom Endpoints" dans le menu du plugin, la liste de tous les custom endpoints créés s'affiche :

Custom Endpoints dans l'administration
Custom Endpoints dans l'administration

Créer un nouveau custom endpoint

Cliquez sur le bouton "Add New GraphQL endpoint" pour ouvrir l'éditeur WordPress :

Création d'un nouveau Custom Endpoint

Donnez-lui un titre, assurez-vous que le permalink est celui souhaité, sélectionnez la configuration du schéma et ajustez les options. Lorsqu'il est prêt, cliquez sur le bouton Publish, et le custom endpoint est créé, en utilisant le permalink configuré comme URL de l'endpoint.

Les liens vers l'endpoint (ainsi que vers la source et les clients) sont affichés dans le panneau latéral "Custom Endpoint Overview" :

Custom Endpoint Overview

Configuration du schéma

Définir quels éléments le schéma contient, et quel accès les utilisateurs y auront, se fait dans la configuration du schéma.

Nous devons donc créer une configuration du schéma, puis la sélectionner depuis le menu déroulant (ou n'en utiliser aucune, ou utiliser celle par défaut) :

Sélectionner la configuration du schéma

Endpoints privés

En définissant le statut du Custom Endpoint comme private, l'endpoint n'est accessible que par l'utilisateur administrateur. Cela évite que nos données soient partagées involontairement avec des utilisateurs qui ne devraient pas y avoir accès.

Par exemple, nous pouvons créer des Custom Endpoints privés pour aider à gérer l'application, comme récupérer des données pour créer des rapports avec nos métriques.

Custom Endpoint Privé

Endpoints protégés par mot de passe

Si nous créons un Custom Endpoint pour un client spécifique, nous pouvons lui attribuer un mot de passe, afin de fournir un niveau de sécurité supplémentaire garantissant que seul ce client accède à l'endpoint.

Custom Endpoint protégé par mot de passe

Lors du premier accès à un endpoint protégé par mot de passe (que ce soit en accédant directement à l'endpoint, ou à ses clients GraphiQL ou Interactive Schema), nous rencontrons un écran demandant le mot de passe :

Custom Endpoint protégé par mot de passe : premier accès

Une fois le mot de passe fourni et validé, l'utilisateur accède alors à l'endpoint ou au client souhaité :

Custom Endpoint protégé par mot de passe : après autorisation

Créer une hiérarchie d'endpoints

Veuillez lire les instructions sur la création d'une hiérarchie d'API.

Désactiver le custom endpoint

Dans les options, définissez "Enabled" à false pour désactiver le custom endpoint.

Cette fonctionnalité peut être utile lorsqu'on fait du custom endpoint une partie d'une hiérarchie d'API, pour fournir un comportement commun à ses custom endpoints enfants, sans que celui-ci doive lui-même être exécuté.

Décrire le custom endpoint

Utilisez le champ "Excerpt", dans le panneau des réglages du document, pour donner une description au custom endpoint.

Pour plus d'informations, consultez le guide Ajouter une description à l'API.

Clients de l'endpoint

Chaque custom endpoint possède son propre ensemble de clients pour interagir avec lui.

Client GraphiQL

Ajoutez ?view=graphiql à l'endpoint pour accéder à son client GraphiQL :

Client GraphiQL du custom endpoint

Le client GraphiQL peut également être ouvert lors de l'édition du Custom Endpoint, sous le panneau latéral "Custom Endpoint Overview" :

Lien vers le client GraphiQL du custom endpoint dans l'éditeur

De même, le client peut être ouvert depuis la page de liste des Custom Endpoints, sur le lien "GraphiQL" en survolant l'entrée :

Lien vers le client GraphiQL du custom endpoint dans la liste
Lien vers le client GraphiQL du custom endpoint dans la liste

Pour désactiver le client GraphiQL, définissez l'option "Expose GraphiQL client?" à false dans l'éditeur du Custom Endpoint.

Client Interactive Schema (Voyager)

Ajoutez ?view=schema à l'endpoint pour accéder à son client Interactive Schema, afin de visualiser et d'interagir avec le schéma de l'endpoint :

Client Voyager du custom endpoint

Le client Interactive Schema peut également être ouvert lors de l'édition du Custom Endpoint, sous le panneau latéral "Custom Endpoint Overview" :

Lien vers le client Interactive Schema du custom endpoint dans l'éditeur

De même, le client peut être ouvert depuis la page de liste des Custom Endpoints, sur le lien "Interactive Schema" en survolant l'entrée :

Lien vers le client Interactive Schema du custom endpoint dans la liste
Lien vers le client Interactive Schema du custom endpoint dans la liste

Pour désactiver le client Interactive Schema, définissez l'option "Expose the Interactive Schema client?" à false dans l'éditeur du Custom Endpoint.

Tester l'endpoint avant de le publier en ligne

Un custom endpoint avec le statut draft ou pending est disponible uniquement pour les utilisateurs éditeurs du schéma. Cela leur donne la possibilité de :

  • Exécuter des requêtes GraphQL contre celui-ci
  • Accéder aux clients GraphiQL et Voyager de l'endpoint

Nous pouvons ainsi créer un custom endpoint, lui assigner une Configuration du Schéma, le publier en draft ou pending, et le tester (par exemple : vérifier que ses règles de contrôle d'accès sont appropriées).

Une fois approuvé, nous définissons alors son statut comme publish, rendant le custom endpoint disponible pour tous.

Voir la source

En ajoutant ?view=source à l'endpoint, la configuration de l'endpoint s'affiche (à condition que l'utilisateur soit connecté et que son rôle y ait accès) :

Source du custom endpoint


Configuration dans l'éditeur WordPress

Voici les champs dans le corps de l'éditeur :

ChampDescription
TitreTitre du custom endpoint
Configuration du schémaDepuis le menu déroulant, sélectionnez la configuration du schéma qui s'applique au custom endpoint, ou l'une de ces options :
  • "Default" : la configuration du schéma est celle sélectionnée dans les Réglages du plugin
  • "None" : le custom endpoint sera sans contrainte
  • "Inherit from parent" : utiliser la même configuration du schéma que le custom endpoint parent.
    Cette option est disponible lorsque le module "API Hierarchy" est activé, et que le custom endpoint a une requête parente (sélectionnée dans les réglages du document)
OptionsPersonnaliser le comportement du custom endpoint :
  • Enabled? : Si le custom endpoint est activé.
    Il est utile de désactiver un custom endpoint s'il est une requête parente dans une hiérarchie d'API
  • Expose GraphiQL client? : Activer/désactiver l'attachement d'un client GraphiQL à l'endpoint, accessible sous ?view=graphiql
  • Expose the Interactive Schema client? : Activer/désactiver l'attachement d'un client Interactive Schema à l'endpoint, accessible sous ?view=schema
  • Inherit query from ancestor(s)? : Utiliser la même requête que le custom endpoint parent.
    Cette option est disponible lorsque le module "API Hierarchy" est activé, et que le custom endpoint a une requête parente (sélectionnée dans les réglages du document)

Voici les champs dans les réglages du document :

ChampDescription
PermalinkL'endpoint sous lequel le custom endpoint sera disponible
CatégoriesPermet de catégoriser le custom endpoint.
Ex. : mobile, app, etc.
ExcerptFournir une description pour le custom endpoint.
Ce champ est disponible lorsque le module "Excerpt as Description" est activé
Attributs de pageSélectionner un custom endpoint parent.
Ce champ est disponible lorsque le module "API Hierarchy" est activé