Partager via


Ajoutez une API GraphQL synthétique et configurer des résolveurs de champs

S'APPLIQUE À : Tous les niveaux de Gestion des API

Dans Gestion des API, vous pouvez ajouter une API GraphQL selon l’un des deux modèles suivants : pass-through vers un point de terminaison GraphQL existant ou importation d’un schéma GraphQL et création d’une API GraphQL synthétique avec des résolveurs de champs personnalisés. Pour plus d’informations, consultez la Vue d’ensemble de GraphQL.

Remarque

Cette fonctionnalité n’est actuellement pas disponible dans les espaces de travail.

Dans cet article, vous allez :

  • Importez un schéma GraphQL dans votre instance Gestion des API Azure.
  • Configurez un programme de résolution pour une requête GraphQL à l’aide d’un point de terminaison HTTP existant.
  • Tester votre API GraphQL.

Si vous souhaitez exposer un point de terminaison GraphQL existant en tant qu’API, consultez Importer une API GraphQL.

Prérequis

  • Disposer d’une instance d’API Management. Si vous ne l’avez pas déjà fait, créez-en un.
  • Un fichier de schéma GraphQL valide avec l’extension .graphql
  • Un point de terminaison GraphQL back-end est facultatif pour ce scénario

Accéder à votre instance Gestion des API

  1. Dans le portail Azure, recherchez et sélectionnez Services de gestion des API :

    Capture d’écran qui montre les services de gestion des API dans les résultats de recherche.

  2. Sur la page des services de gestion des API, sélectionnez votre instance de gestion des API :

    Capture d’écran qui montre une instance de gestion des API sur la page des services de gestion des API.

Ajouter un schéma GraphQL

  1. Dans le volet gauche, sous API, sélectionnez API.

  2. Sous Définir une nouvelle API, sélectionnez la vignette GraphQL .

    Capture d’écran de la sélection de la vignette GraphQL.

  3. Dans la boîte de dialogue, sélectionnez Complet, puis entrez des valeurs dans les champs requis, comme décrit dans le tableau suivant.

    Capture d’écran de la page Créer à partir du schéma GraphQL.

    Valeur Descriptif
    Nom complet Nom sous lequel votre API GraphQL est affichée.
    Nom Nom brut de l’API GraphQL. Se remplit automatiquement à mesure que vous tapez le nom complet.
    Type de GraphQL Sélectionnez GraphQL synthétique pour importer à partir d’un fichier de schéma GraphQL.
    Point de terminaison GraphQL de secours Entrez éventuellement une URL avec un nom de point de terminaison d’API GraphQL. Gestion des API transmet les requêtes GraphQL à ce point de terminaison lorsqu’un résolveur personnalisé n’est pas défini pour un champ.
    Description Ajoutez une description de votre API.
    Modèle d’URL Sélectionnez un schéma en fonction de votre point de terminaison GraphQL. Sélectionnez l’une des options contenant un schéma WebSocket (WS ou WSS) si votre API GraphQL inclut le type d’abonnement. La sélection par défaut est HTTP(S).
    Suffixe de l’URL de l’API Ajoutez un suffixe d’URL pour identifier l’API spécifique dans l’instance Gestion des API. Doit être unique dans l’instance Gestion des API.
    URL de base Champ non modifiable affichant votre URL de base d’API.
    Balises Associez éventuellement votre API GraphQL à des balises nouvelles ou existantes.
    Produits Associez votre API GraphQL à un produit pour la publier.
    Créer une version pour cette API ? Cochez la case pour appliquer un schéma de contrôle de version à votre API GraphQL.
  4. Sélectionnez Create (Créer).

  5. Une fois l’API créée, passez en revue ou modifiez le schéma sous l’onglet Schéma .

Configurer un programme de résolution

Configurez un résolveur de façon à mapper un champ du schéma sur un point de terminaison HTTP existant. Des étapes générales sont fournies ici. Pour plus de détails, reportez-vous à Configurer un programme de résolution GraphQL.

Supposons que vous avez importé le schéma GraphQL de base suivant et que vous souhaitez configurer un programme de résolution pour la users requête.

type Query {
    users: [User]
}

type User {
    id: String!
    name: String!
}
  1. Dans le volet gauche, sous API, sélectionnez API.

  2. Sélectionnez votre API GraphQL.

  3. Sous l’onglet Schéma , passez en revue le schéma d’un champ dans un type d’objet dans lequel vous souhaitez configurer un programme de résolution.

    1. Sélectionnez un champ, puis pointez le pointeur dans la marge gauche.

    2. Sélectionnez Ajouter un résolveur.

      Capture d’écran de l’ajout d’un programme de résolution GraphQL dans le portail.

  4. Dans le volet Créer un programme de résolution :

    1. Mettez à jour la propriété Nom si vous le souhaitez, entrez éventuellement une Description et confirmez ou mettez à jour les sélections Type et Champ.
    2. Dans Source de données, sélectionnez API HTTP.
  5. Dans l’éditeur de Stratégie du résolveur, mettez à jour l’élément <http-data-source> avec les éléments enfants qui conviennent à votre scénario. Par exemple, le programme de résolution suivant récupère le users champ en effectuant un appel à une GET source de données HTTP existante.

        <http-data-source>
            <http-request>
                <set-method>GET</set-method>
                <set-url>https://myapi.contoso.com/users</set-url>
            </http-request>
        </http-data-source>
    

    Capture d’écran de la configuration de la stratégie du programme de résolution dans le portail.

  6. Sélectionnez Create (Créer).

  7. Pour résoudre les données d’un autre champ du schéma, répétez les étapes précédentes pour créer un autre programme de résolution.

Conseil

Lorsque vous modifiez une stratégie de programme de résolution, sélectionnez Exécuter le test pour vérifier la sortie de la source de données, que vous pouvez valider par rapport au schéma. Si des erreurs se produisent, la réponse inclut des informations sur la résolution des problèmes.

Tester votre API GraphQL

  1. Accédez à votre instance Gestion des API.

  2. Dans le volet gauche, dans la section API , sélectionnez API.

  3. Sous Toutes les API, sélectionnez votre API GraphQL.

  4. Sélectionnez l’onglet Test pour accéder à la console de test.

  5. Sous En-têtes :

    1. Sélectionnez l’en-tête dans le menu Nom .
    2. Entrez la valeur dans la zone Valeur .
    3. Ajoutez d’autres en-têtes en sélectionnant Ajouter un en-tête.
    4. Supprimez les en-têtes à l’aide du bouton corbeille.
  6. Si vous avez ajouté un produit à votre API GraphQL, ajoutez une étendue de produit sous Appliquer l’étendue du produit.

  7. Dans l’éditeur de requête, effectuez l’une des opérations suivantes :

    1. Sélectionnez au moins un champ ou un sous-champ dans la liste dans le menu à gauche de l’éditeur. Les champs et les sous-champs que vous sélectionnez s’affichent dans l’éditeur de requête.

    2. Commencer à taper dans l’éditeur de requête pour composer une requête.

      Capture d’écran de l’éditeur de requête.

  8. Sous Variables de requête, ajoutez des variables pour réutiliser la même requête ou mutation et passer des valeurs différentes.

  9. Sélectionnez Envoyer.

  10. Consultez la Réponse.

    Capture d’écran de la réponse de requête de test.

  11. Répétez les étapes précédentes pour tester différentes charges utiles.

  12. Lorsque vous avez terminé le test, quittez la console de test.

Sécuriser votre API GraphQL

Sécurisez l’API GraphQL en appliquant à la fois des stratégies d’authentification et d’autorisation existantes et une stratégie de validation GraphQL pour la protection contre les attaques ciblant GraphQL.