Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’API Fabric pour GraphQL fournit un environnement de développement GraphQL graphique dans le navigateur, qui permet à un terrain de jeu interactif de composer, tester et voir les résultats en live de vos requêtes et mutations GraphQL.
Qui utilise l’éditeur GraphQL
L’éditeur GraphQL est essentiel pour :
- Développeurs d’applications prototypage et test de requêtes sur des données Fabric avant de les implémenter dans des applications
- Ingénieurs de données explorant des structures de données de type lakehouse et entrepôt et validant les schémas GraphQL
- Contributeurs d’espace de travail Fabric qui testent les autorisations d’accès aux données et résolvent les problèmes de requête
- Développeurs décisionnels apprenant la structure d’API et créant des modèles d’accès aux données pour les applications personnalisées
- Équipes de développement qui collaborent sur le développement des requêtes et résolvent les problèmes d’accès aux données dans les espaces de travail Fabric
Utilisez l’éditeur chaque fois que vous devez développer, tester ou déboguer des requêtes GraphQL de manière interactive sur vos sources de données Fabric.
Bien démarrer avec l’éditeur GraphQL
Pour commencer à utiliser l’éditeur GraphQL, procédez comme suit :
Ouvrez l’élément d’API GraphQL : accédez à votre espace de travail dans Fabric et ouvrez l’API pour l’élément GraphQL.
Accédez à l’éditeur : sélectionnez Requête dans le coin inférieur gauche de l’écran de votre portail.
Écrivez votre requête : tapez vos requêtes GraphQL directement sous l’onglet Requête . Utilisez IntelliSense avec les raccourcis clavier :
- Windows : Ctrl + Espace
- macOS : Commande + Espace
Exécutez la requête : sélectionnez Exécuter pour exécuter la requête et récupérer des données à partir de votre source de données.
Générer le code
L’éditeur d’API génère automatiquement du code Python ou Node.js réutilisable qui reflète la requête GraphQL ou la mutation que vous testez actuellement dans l’éditeur. Lorsque vous prototypez et affinez vos requêtes, le code généré est mis à jour en conséquence. Une fois que vous êtes satisfait des résultats, vous pouvez afficher et copier le code généré pour qu’il s’exécute localement à des fins de test ou le réutiliser dans votre processus de développement d’application.
Important
Le code généré utilise des informations d’identification de navigateur interactives et doit être utilisé uniquement à des fins de test. En production, inscrivez toujours une application dans Microsoft Entra et utilisez le client_id et les étendues appropriés. Vous trouverez un exemple de bout en bout avec un exemple de code sur Connect Applications.
Pour commencer :
Écrivez une requête : entrez l’exemple de requête suivant (ou votre propre) dans l’éditeur de requête :
query { addresses(first: 5) { items { AddressID City StateProvince CountryRegion } } }Exécutez la requête : sélectionnez Exécuter pour exécuter la requête et vérifiez qu’elle fonctionne correctement dans l’éditeur avant de continuer.
Générer du code : sélectionnez le bouton Générer du code , puis sélectionnez votre langage de programmation préféré (Python ou JavaScript/Node.JS) :
Vous pouvez ensuite copier le code généré et l’enregistrer sous forme de fichier dans un dossier local. Selon la langue choisie, suivez ces étapes rapides pour tester localement :
Python
Créez un fichier nommé
editor.pyet collez le code généré à partir de l’exemple de requête ci-dessus.Créez un environnement virtuel en exécutant la commande
python -m venv .venv.Activez l’activation en
venvexécutant.venv\Scripts\activateousource .venv/bin/activate.Installez la dépendance requise en exécutant
pip install azure-identity.Exécutez le code avec
python editor.py.Vous êtes invité à vous connecter via une fenêtre de navigateur pour authentifier la demande.
La réponse de l’API est imprimée dans la console.
{ "data": { "addresses": { "items": [ { "AddressID": 9, "City": "Bothell", "StateProvince": "Washington", "CountryRegion": "United States" }, { "AddressID": 11, "City": "Bothell", "StateProvince": "Washington", "CountryRegion": "United States" }, { "AddressID": 25, "City": "Dallas", "StateProvince": "Texas", "CountryRegion": "United States" }, { "AddressID": 28, "City": "Phoenix", "StateProvince": "Arizona", "CountryRegion": "United States" }, { "AddressID": 32, "City": "Montreal", "StateProvince": "Quebec", "CountryRegion": "Canada" } ] } } }
Node.JS
Créez un fichier nommé
editor.jset collez le code généré à partir de l’exemple de requête ci-dessus.Dans le même dossier que
editor.js, créez unpackage.jsonfichier avec le contenu suivant :{ "type": "module", "dependencies": {} }Installer Node.js sur votre ordinateur de développement (inclut npm)
Exécutez ou exécutez
npm install @azure/identityune commande similaire dans le gestionnaire de package choisi pour installer la dernière version de la bibliothèque d’identités.Exécutez
node editor.jspour exécuter le code.Vous êtes invité à vous connecter via une fenêtre de navigateur pour authentifier la demande.
La réponse de l’API est imprimée dans la console.
{ "data": { "addresses": { "items": [ { "AddressID": 9, "City": "Bothell", "StateProvince": "Washington", "CountryRegion": "United States" }, { "AddressID": 11, "City": "Bothell", "StateProvince": "Washington", "CountryRegion": "United States" }, { "AddressID": 25, "City": "Dallas", "StateProvince": "Texas", "CountryRegion": "United States" }, { "AddressID": 28, "City": "Phoenix", "StateProvince": "Arizona", "CountryRegion": "United States" }, { "AddressID": 32, "City": "Montreal", "StateProvince": "Quebec", "CountryRegion": "Canada" } ] } } }
Développement de requêtes et mutations
Les exemples suivants illustrent la syntaxe de requête et de mutation GraphQL à l’aide des exemples de données AdventureWorks. Ces exemples supposent que vous utilisez un entrepôt de données Fabric qui prend en charge les opérations d’écriture (mutations). Les sources de données accessibles via des points de terminaison SQL Analytics (comme Lakehouses et des bases de données mises en miroir) sont en lecture seule et prennent uniquement en charge les requêtes, et non les mutations.
Passez en revue cet extrait de schéma GraphQL court d’AdventureWorks. Il définit un Product type avec des requêtes pour lire un seul produit ou lister tous les produits et mutations pour créer, mettre à jour ou supprimer des produits, prenant en charge tous les cas d’usage CRUDL (créer, lire, mettre à jour, supprimer, liste).
{
type Product {
ProductID: Int!
Name: String!
ProductNumber: String!
Color: String
ListPrice: Float!
SellStartDate: DateTime!
}
type Query {
products(first: Int, filter: ProductFilterInput): ProductConnection
products_by_pk(ProductID: Int!): Product
}
type Mutation {
createProduct(Name: String!, ProductNumber: String!, ListPrice: Float!, SellStartDate: DateTime!): Product
updateProduct(ProductID: Int!, Name: String, Color: String, ListPrice: Float): Product
deleteProduct(ProductID: Int!): Boolean
}
}
Lisez les données exposées via GraphQL à l’aide d’une requête définie dans le schéma. La products_by_pk requête récupère un seul produit par sa clé primaire :
query MyQuery {
products_by_pk(ProductID: 680) {
ProductID
Name
ProductNumber
Color
ListPrice
}
}
Réponse :
{
"data": {
"products_by_pk": {
"ProductID": 680,
"Name": "HL Road Frame - Black, 58",
"ProductNumber": "FR-R92B-58",
"Color": "Black",
"ListPrice": 1431.50
}
}
}
Utilisez des mutations comme createProduct pour écrire des données et créer un nouveau produit avec les paramètres requis.
mutation MyMutation {
createProduct(
Name: "Mountain Bike Helmet - Blue",
ProductNumber: "HE-M897-B",
ListPrice: 89.99,
SellStartDate: "2025-01-01T00:00:00Z"
) {
ProductID
Name
ProductNumber
ListPrice
}
}
Réponse :
{
"data": {
"createProduct": {
"ProductID": 1001,
"Name": "Mountain Bike Helmet - Blue",
"ProductNumber": "HE-M897-B",
"ListPrice": 89.99
}
}
}
Variables de requête
Utilisez le volet Variables de requête sur le côté droit de l’onglet Requête pour transmettre des paramètres en tant que variables à vos requêtes ou mutations. Les variables fonctionnent comme des variables dans d’autres langages de programmation. Chaque variable est déclarée avec un nom utilisé pour accéder à la valeur stockée dans celle-ci. À l’aide de l’exemple de mutation précédent, vous le modifiez légèrement pour utiliser des variables de requête.
mutation MyMutation ($name: String!, $productNumber: String!, $listPrice: Float!, $sellStartDate: DateTime!){
createProduct(
Name: $name,
ProductNumber: $productNumber,
ListPrice: $listPrice,
SellStartDate: $sellStartDate
) {
ProductID
Name
ProductNumber
ListPrice
}
}
Définissez des variables dans le volet Variables de requête à l’aide de l’exemple suivant.
{
"name": "Mountain Bike Helmet - Blue",
"productNumber": "HE-M897-B",
"listPrice": 89.99,
"sellStartDate": "2025-01-01T00:00:00Z"
}
Les variables rendent le code de mutation plus propre, plus facile à lire, tester et modifier. Ils facilitent également la réutilisation de la même mutation avec des valeurs différentes en modifiant simplement les variables.