Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
Découvrez comment créer une application frontale avec React, Apollo Client et TypeScript qui s’intègre à une API GraphQL hébergée dans Microsoft Fabric. Ce tutoriel traite de la configuration des outils de développement locaux, notamment la saisie automatique, la génération de code et IntelliSense pour une expérience de développement optimale.
Qui doit utiliser les outils de développement VS Code
Le développement local avec VS Code est conçu pour :
- Développeurs React créant des applications web qui consomment des données de Fabric Lakehouse et Warehouse via GraphQL
- Développeurs TypeScript qui ont besoin d’une génération de code client de type sécurisé pour les API Fabric GraphQL
- Développeurs full-stack qui créent des applications d'analytique sur mesure sur la plateforme Fabric avec prise en charge de l'IDE local
- Équipes de développement qui souhaitent des outils modernes avec IntelliSense et le débogage pour les applications d’accès aux données Fabric
Utilisez cette approche lorsque vous créez des applications React qui ont besoin d’une prise en charge complète de l’IDE, de la génération de code et des fonctionnalités de débogage locales avec TypeScript et Apollo Client.
Prerequisites
Avant de commencer, vérifiez que vous disposez des points suivants :
- Accès à l’espace de travail Microsoft Fabric : être membre de l’espace de travail Fabric avec au moins le rôle Contributeur (ou supérieur : Administrateur, Membre) pour créer et modifier des éléments d’API GraphQL
- Autorisations de source de données : autorisations en lecture/écriture sur les sources de données que vous envisagez d’exposer via l’API GraphQL
- Node.js installé sur votre ordinateur de développement (inclut npm)
- Visual Studio Code installé sur votre ordinateur de développement
- Connaissance de base des concepts React, TypeScript et GraphQL
Étape 1 : Créer une API GraphQL dans Microsoft Fabric
Note
Ce guide montre comment créer une API GraphQL à partir d’un contexte de base de données SQL. Vous créez d’abord la base de données SQL, puis créez l’API GraphQL directement à partir de cette base de données. Si vous disposez déjà d’une API GraphQL existante et que vous souhaitez vous y connecter, suivez le guide de prise en main où vous créez d’abord l’API, puis connectez-vous à une base de données SQL ou à une autre source de données.
Créer une base de données SQL
Pour créer une base de données SQL qui contient des exemples de données pour votre API GraphQL :
- Dans votre espace de travail Fabric, sélectionnez Nouvel élément.
- Sélectionnez base de données SQL (préversion).
- Indiquez un nom pour votre base de données.
- Sélectionnez Exemples de données pour créer automatiquement des tables et les remplir avec des exemples de données. Cela crée l’exemple de base de données AdventureWorksLT avec le schéma SalesLT, y compris les tables telles que SalesLT.Customer, SalesLT.Product et SalesLT.SalesOrderHeader.
Conseil / Astuce
Si vous disposez déjà d’une base de données SQL avec des exemples de données à partir d’un didacticiel précédent ou de la création d’API GraphQL, vous pouvez réutiliser cette même base de données. Une base de données unique peut prendre en charge plusieurs API GraphQL. Il n’est donc pas nécessaire de créer une base de données si vous en avez déjà une avec le schéma SalesLT.
Créer l’API GraphQL
Maintenant que vous disposez d’une base de données SQL avec des exemples de données, créez l’API GraphQL :
Dans votre base de données SQL, sélectionnez Nouvelle API pour GraphQL dans le ruban.
Indiquez un nom pour votre API.
Sélectionnez toutes les tables SalesLT de votre base de données.
Sélectionnez Charger pour générer l’API.
Votre API GraphQL est maintenant prête et disponible dans votre espace de travail Fabric.
Étape 2 : Configurer votre environnement de développement
Pour suivre ce didacticiel, procédez comme suit pour configurer l’application de démarrage React, installer les dépendances nécessaires et configurer Visual Studio Code avec la prise en charge de GraphQL.
Clonez l’application de démarrage : obtenez l’application de démarrage React à partir du référentiel d’exemples Microsoft Fabric :
git clone https://github.com/microsoft/fabric-samples.git cd fabric-samples/docs-samples/data-engineering/GraphQL/React-Apollo-TSInstaller les dépendances : installez les packages requis pour le développement GraphQL, la saisie automatique et la génération de code :
npm installInstallez l’extension Visual Studio Code requise : installez l’extension GraphQL : Language Feature Support dans Visual Studio Code pour activer la mise en surbrillance de la syntaxe, la validation et IntelliSense pour les opérations GraphQL.
Étape 3 : Configurer votre schéma GraphQL
Un schéma GraphQL définit la structure de votre API : quelles données sont disponibles, quelles opérations vous pouvez effectuer et quelles relations entre différents types de données sont. Vos outils de développement utilisent ce schéma pour fournir IntelliSense, la saisie semi-automatique du code et la génération de types, ce qui facilite considérablement l’écriture de requêtes et de mutations GraphQL correctes.
Vous pouvez obtenir votre schéma GraphQL de deux façons :
Option 1 : Exporter le schéma en tant que fichier statique
- Dans votre API Fabric GraphQL, sélectionnez Exporter le schéma dans le ruban.
- Le nom de fichier téléchargé inclut l’ID de votre API GraphQL (par exemple).
GraphQL_your-api-id_schema.graphqlEnregistrez-le dans le répertoire racine de votre projet et renommez-leschema.graphql: il s’agit du nom de fichier que vous utilisez dans les étapes de configuration qui suivent.
Option 2 : Utiliser un point de terminaison distant
- Accédez à l’API GraphQL que vous avez créée dans le portail Fabric.
- Obtenir un jeton d’autorisation à l’aide de PowerShell avec Get-PowerBIAccessToken
Note
Bien que l’option de point de terminaison distant fournit toujours le schéma le plus up-to-date, le jeton récupéré est temporaire et expire toutes les heures. Ils doivent être utilisés uniquement à des fins de test et de développement, dans la mesure du possible, utiliser un fichier statique pour éviter les problèmes liés à l’expiration du jeton.
Étape 4 : Configurer IntelliSense et la saisie automatique
Vous allez maintenant configurer IntelliSense à l’aide du schéma de l’étape 3. Le fichier de schéma (qu’il s’agisse d’un point de terminaison statique ou distant) permet à VS Code de fournir des suggestions de code en temps réel, la détection des erreurs et la validation de champ lorsque vous écrivez des requêtes GraphQL.
Créez un fichier de configuration à la racine de votre projet :
Utilisation du fichier de schéma statique
Utilisez la configuration suivante si vous avez exporté le schéma en tant que fichier statique :
Créer .graphqlrc.yml:
schema: './schema.graphql'
documents: 'src/**/*.{ts,tsx,graphql,gql}'
Utilisation du point de terminaison distant
Utilisez la configuration suivante si vous préférez récupérer le schéma directement à partir de votre point de terminaison d’API GraphQL :
Créer graphql.config.yml:
schema:
- https://your-graphql-endpoint.com/graphql:
headers:
Authorization: Bearer YOUR_ACCESS_TOKEN
documents: src/**/*.{ts,tsx,graphql,gql}
Options de configuration
- schéma : spécifie l’emplacement de votre schéma GraphQL
- documents : définit les fichiers qui doivent prendre en charge IntelliSense
Après avoir créé le fichier de configuration, redémarrez Visual Studio Code pour vous assurer que les modifications prennent effet.
Étape 5 : Configurer la génération de code
La génération de code GraphQL crée automatiquement des interfaces TypeScript fortement typées et des hooks React à partir de votre schéma et opérations, ce qui réduit les erreurs et améliore l’efficacité du développement. Son objectif principal est d’améliorer la sécurité des types et de simplifier le développement dans les projets GraphQL, en particulier lors de l’utilisation de langages fortement typés comme TypeScript.
Créer une configuration codegen
Option de fichier statique
Si vous avez exporté le schéma en tant que fichier statique, créez codegen.yml à la racine de votre projet :
schema: './schema.graphql'
documents: './src/**/*.graphql'
generates:
src/generated/graphql.tsx:
plugins:
- typescript
- typescript-operations
- typescript-react-apollo
config:
withHooks: true
Option de point de terminaison distant
Si vous utilisez l’approche de point de terminaison distant, créez codegen.yml à la racine de votre projet :
schema:
- https://your-graphql-endpoint.com/graphql:
headers:
Authorization: Bearer YOUR_ACCESS_TOKEN
documents: 'src/**/*.{ts,tsx,graphql,gql}'
generates:
src/generated/graphql.tsx:
plugins:
- typescript
- typescript-operations
- typescript-react-apollo
config:
withHooks: true
Répartition de la configuration
- schéma : chemin d’accès à votre fichier de schéma ou point de terminaison distant
- documents : modèle Glob pour localiser les fichiers d’opération GraphQL
- génère : spécifie le fichier de sortie pour le code généré
- plug-ins : détermine le code à générer (types TypeScript et hooks React Apollo)
Ajouter un script codegen
Ajoutez le script de génération de code au fichier dans votre package.json répertoire de projet (ce fichier a été inclus lorsque vous avez cloné le référentiel à l’étape 2) :
{
"scripts": {
"codegen": "graphql-codegen --config codegen.yml"
}
}
Étape 6 : Écrire des opérations GraphQL
Créez des .graphql fichiers dans votre src/operations répertoire pour définir vos requêtes et mutations. IntelliSense fournit la saisie automatique et la validation.
Exemples de requêtes
Créez src/operations/queries.graphql et entrez les requêtes suivantes :
Voici un exemple de requête pour récupérer les données client :
query GET_CUSTOMERS(
$after: String
$first: Int
$filter: CustomerFilterInput
$orderBy: CustomerOrderByInput
) {
customers(after: $after, first: $first, filter: $filter, orderBy: $orderBy) {
items {
CustomerID
FirstName
LastName
}
}
}
Voici un exemple de mutation :
mutation ADD_CUSTOMER($input: CreateCustomerInput!) {
createCustomer(item: $input) {
CustomerID
FirstName
LastName
Title
Phone
PasswordHash
PasswordSalt
rowguid
ModifiedDate
NameStyle
}
}
Étape 7 : Générer des types et des hooks
Exécutez la commande de génération de code pour créer des types TypeScript et des hooks React :
npm run codegen
Une fois l’opération terminée, vous disposez du code généré dans src/generated/graphql.tsx lequel se trouver :
- Interfaces TypeScript pour tous les types GraphQL
- Crochets React fortement typés pour chaque opération
- Définitions de type d’entrée et de sortie
Étape 8 : Utiliser le code généré dans vos composants React
Importez et utilisez les hooks générés dans vos composants React, par exemple :
import React from 'react';
import { useGetCustomersQuery, useAddCustomerMutation } from '../generated/graphql';
const CustomersComponent: React.FC = () => {
const { data, loading, error } = useGetCustomersQuery({
variables: { first: 10 }
});
const [addCustomer] = useAddCustomerMutation();
if (loading) return <div>Loading...</div>;
if (error) return <div>Error: {error.message}</div>;
return (
<div>
{data?.customers?.items?.map(customer => (
<div key={customer.CustomerID}>
{customer.FirstName} {customer.LastName}
</div>
))}
</div>
);
};
export default CustomersComponent;
Étape 9 : Configurer l’authentification
Configurez l’authentification d’ID Microsoft Entra pour votre application :
Créez une application Microsoft Entra en suivant la section Créer une application Microsoft Entra dans Connecter des applications à l’API Fabric pour GraphQL.
Mettez à jour le
authConfig.tsfichier dans votre projet avec les paramètres requis :
export const AUTH_CONFIG = {
clientId: "<Enter_the_Application_Id_Here>",
tenantId: "<Enter_the_Tenant_Id_Here>",
clientSecret: "<Enter_the_Client_Secret_Here>", //optional
}
export const GRAPHQL_ENDPOINT = '<Enter_the_GraphQL_Endpoint_Here>';
// The scope required for Fabric GraphQL API access
export const DEFAULT_SCOPE = "https://analysis.windows.net/powerbi/api/.default";
Pour le fichier de configuration complet, reportez-vous à l’exemple authConfig.ts dans le référentiel.
Étape 10 : Exécuter votre application
Démarrez votre serveur de développement :
npm run dev
Votre application démarre dans le navigateur à l’adresse http://localhost:3000. Vous êtes invité à vous connecter avec vos informations d’identification Microsoft pour accéder aux données de l’API GraphQL. Une fois l’authentification réussie, vous verrez les données client de la table de votre base de SalesLT.Customer données Fabric SQL affichée dans l’application React.