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

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 :

Créer un nouveau custom endpoint
Cliquez sur le bouton "Add New GraphQL endpoint" pour ouvrir l'éditeur WordPress :

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" :

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) :

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.

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.

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 :

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

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 :

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

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 :

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 :

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

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 :

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) :

Configuration dans l'éditeur WordPress
Voici les champs dans le corps de l'éditeur :
| Champ | Description |
|---|---|
| Titre | Titre du custom endpoint |
| Configuration du schéma | Depuis le menu déroulant, sélectionnez la configuration du schéma qui s'applique au custom endpoint, ou l'une de ces options :
|
| Options | Personnaliser le comportement du custom endpoint :
|
Voici les champs dans les réglages du document :
| Champ | Description |
|---|---|
| Permalink | L'endpoint sous lequel le custom endpoint sera disponible |
| Catégories | Permet de catégoriser le custom endpoint. Ex. : mobile, app, etc. |
| Excerpt | Fournir une description pour le custom endpoint. Ce champ est disponible lorsque le module "Excerpt as Description" est activé |
| Attributs de page | Sélectionner un custom endpoint parent. Ce champ est disponible lorsque le module "API Hierarchy" est activé |