Partager via


Générateur d’API de données (préversion)

L’extension MSSQL pour Visual Studio Code inclut une interface utilisateur intégrée pour le générateur d’API de données. Vous pouvez donc créer des points de terminaison REST, GraphQL et MCP pour vos tables de base de données SQL sans écrire de fichiers de configuration ou quitter Visual Studio Code. Vous pouvez sélectionner les tables à exposer, configurer des autorisations CRUD, choisir des types d’API, afficher un aperçu de la configuration générée et déployer un back-end local alimenté par le générateur d’API de données, tous à partir d’une interface visuelle.

Capture d’écran de l’interface utilisateur du générateur d’API de données avec des cases à cocher CRUD et liste d’entités dans Visual Studio Code.

Conseil / Astuce

Le générateur d’API de données est actuellement en préversion et peut changer en fonction des commentaires. Rejoignez la communauté dans GitHub Discussions pour partager des idées ou signaler des problèmes.

Important

Cette fonctionnalité présente des limitations connues, notamment la prise en charge de l’authentification SQL uniquement pour le déploiement de conteneurs et la compatibilité des types de données restreints. Passez en revue les limitations connues et les problèmes connus avant le déploiement.

Fonctionnalités

L’intégration du générateur d’API de données offre ces fonctionnalités :

  • Sélectionnez des entités de base de données (tables) à exposer en tant que points de terminaison d’API, organisées par schéma avec regroupement réductible.
  • Configurez les autorisations Créer, Lire, Mettre à jour et Supprimer (CRUD) indépendamment pour chaque entité.
  • Choisissez les types d’API à générer : REST, GraphQL, MCP ou toute combinaison.
  • Configurez les paramètres d’entité avancés, notamment les chemins REST personnalisés, les noms de types GraphQL personnalisés et les rôles d’autorisation.
  • Affichez un aperçu de la configuration JSON du générateur d’API de données générée dans un panneau Définition en lecture seule.
  • Déployez localement le générateur d’API de données en tant que conteneur Docker avec des vérifications automatisées des prérequis.
  • Testez l’exécution d’API directement dans Visual Studio Code à l’aide du navigateur simple intégré.
  • Utilisez le chat GitHub Copilot pour configurer des entités via des prompts en langage naturel.

Prerequisites

Avant d’utiliser le générateur d’API de données, vérifiez que les exigences suivantes sont remplies :

Générateur d’API Open Data

Vous pouvez ouvrir la vue de configuration du générateur d’API de données à partir de deux points d’entrée :

  • Dans l’Explorateur d’objets : cliquez avec le bouton droit sur un nœud de base de données et sélectionnez l’API Générer des données (préversion)...

    Capture d’écran de la vue de configuration du générateur d’API de données avec des cases à cocher CRUD et liste d’entités dans Visual Studio Code.

  • Dans le Concepteur de schémas : sélectionnez le bouton API Création (bouton en haut à droite de la barre d’outils) ou sélectionnez l’icône back-end dans le volet gauche.

    Capture d’écran du bouton Api Création et de l’icône back-end dans la barre d’outils du Concepteur de schémas.

La vue de configuration du générateur d’API de données s’ouvre, affichant vos entités de base de données, les options de type d’API et les contrôles de configuration.

Sélectionner des entités

La vue de sélection d’entité répertorie toutes les tables de votre base de données connectée, regroupées par schéma.

  • Chaque ligne de schéma est rétractable et affiche un badge avec le nombre indiquant combien d’entités sont activées (par exemple, « 3/5 »).
  • Cochez une case au niveau du schéma pour activer toutes les entités de ce schéma. La case à cocher prend en charge la sélection à trois états : tout, aucun ou mixte.
  • Chaque ligne d’entité affiche : la case à cocher d'activation, le nom de l’entité, la table source, les cases CRUD, et un bouton de paramètres.
  • La désactivation d’une entité grise sa ligne et désactive les cases à cocher CRUD et le bouton paramètres.

Utilisez la zone de filtre en haut pour rechercher des entités par nom, schéma ou table source. Le filtre ne respecte pas la casse, et le nombre activé est mis à jour sur la base des résultats filtrés.

Capture d’écran de la zone de filtre d’entité avec un terme de recherche filtrant la liste d’entités.

Configurer les autorisations et les types d’API

Autorisations CRUD

Activez les cases à cocher Créer, Lire, Mettre à jour et Supprimer individuellement pour chaque entité. Les cases CRUD au niveau de l’en-tête basculent cette action pour toutes les entités activées et prennent en charge la sélection tri-état.

Sélection du type d’API

En haut de la vue de configuration, sélectionnez les types d’API à générer :

  • API REST : génère des points de terminaison REST avec l’interface utilisateur Swagger à des fins de test.
  • GraphQL : génère des points de terminaison GraphQL avec le terrain de jeu Nitro GraphQL.
  • MCP (Preview) : génère des points de terminaison du protocole de contexte de modèle.
  • Tout : sélectionne ou désélectionne tous les types d’API.

Sélectionnez au moins un type d’API.

Capture d’écran de la case à cocher API REST, GraphQL, MCP et Toutes en haut de la vue de configuration du générateur d’API de données.

Configuration avancée des entités

Sélectionnez l’icône d’engrenage sur une ligne d’entité pour ouvrir la boîte de dialogue Configuration d’entité avancée , où vous pouvez configurer :

  • Nom de l’entité : nom utilisé dans les itinéraires et réponses d’API (par défaut, le nom de la table).
  • Rôle d’autorisation : basculer entre Anonyme (aucune authentification requise) et Authentifié (nécessite l’authentification de l’utilisateur).
  • Chemin REST personnalisé : remplacement facultatif pour le chemin d’accès par défaut api/entityName .
  • Type GraphQL personnalisé : remplacement facultatif pour le nom de type GraphQL par défaut.

Sélectionnez Appliquer les modifications pour enregistrer votre configuration ou Annuler pour ignorer.

Capture d’écran de la boîte de dialogue Configuration d’entité avancée montrant les champs Nom d’entité, Rôle d’autorisation, Chemin REST personnalisé et Type GraphQL personnalisé.

Configuration en préversion

Sélectionnez le bouton Afficher la configuration dans la barre d’outils pour ouvrir le panneau Définition en bas de l’affichage de configuration. Ce panneau affiche le fichier de configuration JSON du générateur d’API de données généré dans un format en lecture seule.

Panneau Définition :

  • Reflète la sélection actuelle de l’entité, les types d’API et les paramètres avancés.
  • Reste synchronisé avec l’interface utilisateur et la conversation GitHub Copilot : les modifications apportées à l’un ou l’autre emplacement mettent immédiatement à jour la préversion.
  • Inclut uniquement les entités activées dans la sortie de configuration.
  • Affiche les sections d’exécution REST, GraphQL et MCP en fonction des types d’API sélectionnés.

Sélectionnez Ouvrir dans l’éditeur pour afficher la configuration dans un onglet complet de l’éditeur Visual Studio Code. Sélectionnez Copier pour copier la configuration dans le Presse-papiers.

Capture d’écran du panneau Définition montrant la configuration JSON du générateur d’API de données générée avec les boutons Ouvrir dans l’éditeur et copier.

Déployer localement avec Docker

Le générateur d’API de données se déploie en tant que conteneur Docker local. L’Assistant Déploiement vous guide tout au long du processus :

  1. Sélectionnez le bouton Déployer dans la barre d’outils.

  2. La boîte de dialogue Déployer un conteneur DAB s’ouvre, décrivant le déploiement du conteneur local. Cliquez sur Suivant.

    Capture d’écran de la boîte de dialogue Déployer un conteneur DAB avec la description du déploiement de conteneur local.

  3. L’écran Préparation de Docker exécute les vérifications des prérequis séquentiellement :

    • Vérification de l’installation de Docker : vérifie que Docker est installé sur votre système.
    • Démarrage de Docker Desktop : garantit que Docker Desktop est en cours d’exécution.
    • Vérification du moteur Docker : vérifie que le moteur Docker est prêt.

    Capture d’écran des vérifications des prérequis Docker en cours d’exécution séquentiellement.

    Sélectionnez Suivant pour continuer une fois que toutes les vérifications sont terminées.

    Capture d’écran des vérifications des prérequis Docker terminées avec succès.

  4. L’écran Paramètres du conteneur s’affiche :

    • Nom du conteneur : nom facultatif pour le conteneur Docker (une valeur par défaut générée automatiquement est fournie).
    • Port : port sur lequel exposer l’API (valeur par défaut : 5000).
    • Le conteneur réutilise la chaîne de connexion à partir de la connexion de base de données active.

    Sélectionnez Créer un conteneur.

    Capture d’écran de l’écran Paramètres du conteneur avec les champs Nom du conteneur et Port.

  5. Le déploiement exécute trois étapes séquentiellement : télécharger l'image, démarrer le conteneur, et vérifier la disponibilité.

    Capture d’écran de la progression du déploiement montrant les étapes de création de conteneur.

  6. Lors du déploiement réussi, l’Assistant affiche les URL de point de terminaison pour chaque type d’API activé :

    Type de l’API Point de terminaison Action
    REST http://localhost:{port}/api Afficher Swagger ouvre l’interface utilisateur Swagger
    GraphQL http://localhost:{port}/graphql Nitro ouvre le terrain de jeu GraphQL
    MCP http://localhost:{port}/mcp Ajouter à VS Code écrit la configuration du serveur MCP dans .vscode/mcp.json

    Sélectionnez n’importe quel lien pour ouvrir l’interface de test dans le navigateur simple intégré de Visual Studio Code.

    Capture d’écran de l’écran complet du déploiement montrant que le conteneur du générateur d’API de données s’exécute avec des URL de point de terminaison.

    L’exemple suivant montre l’interface utilisateur Swagger pour tester les points de terminaison REST directement dans Visual Studio Code :

    Capture d’écran de l’interface utilisateur Swagger pour les points de terminaison REST dans visual Studio Code Simple Browser.

    L’exemple suivant montre le terrain de jeu Nitro GraphQL pour tester les requêtes et mutations GraphQL :

    Capture d’écran du terrain de jeu Nitro GraphQL dans visual Studio Code Simple Browser.

Tester l’API en cours d’exécution

Après le déploiement, vous pouvez tester vos API directement à partir de la boîte de dialogue d’achèvement du déploiement à l’aide du navigateur simple intégré de Visual Studio Code.

API REST

Sélectionnez Afficher Swagger pour ouvrir l’interface utilisateur Swagger, interface visuelle interactive permettant d’explorer et de tester les points de terminaison REST. Vous pouvez parcourir les entités disponibles, afficher les schémas de demande et de réponse, et exécuter directement des appels d’API.

Le générateur d’API de données génère les points de terminaison REST suivants pour chaque entité activée :

Méthode Point de terminaison Description
GET /api/{entity} Répertorier tous les enregistrements d’une entité
GET /api/{entity}/{primaryKey}/{value} Obtenir un enregistrement unique par clé primaire
POST /api/{entity} Créer un nouvel enregistrement
PUT /api/{entity}/{primaryKey}/{value} Remplacer un enregistrement existant
PATCH /api/{entity}/{primaryKey}/{value} Mettre à jour des champs spécifiques sur un enregistrement
DELETE /api/{entity}/{primaryKey}/{value} Supprimer un enregistrement

Pour plus d’informations sur les points de terminaison REST, consultez l’API REST du générateur d’API de données.

GraphQL

Sélectionnez Nitro pour ouvrir le terrain de jeu Nitro GraphQL, où vous pouvez écrire et tester des requêtes graphQL et des mutations interactives.

Pour plus d’informations sur les points de terminaison GraphQL, consultez l’API GraphQL du générateur d’API de données.

MCP

Sélectionnez Ajouter à VS Code pour écrire la configuration du serveur MCP dans .vscode/mcp.json. Cette configuration rend le point de terminaison du générateur d’API de données disponible en tant que serveur MCP dans Visual Studio Code. Les outils IA tels que GitHub Copilot peuvent ensuite interagir avec votre base de données via l’API Générateur d’API de données.

Pour plus d’informations sur MCP dans Visual Studio Code, consultez Utiliser des serveurs MCP dans Visual Studio Code.

Test de terminal

Vous pouvez également tester des points de terminaison à partir du terminal :

API REST :

Obtenez tous les enregistrements d’une entité spécifique :

curl http://localhost:{port}/api/{entityName}

Créez un enregistrement (si l’autorisation Créer est activée) :

curl -X POST http://localhost:{port}/api/{entityName} \
  -H "Content-Type: application/json" \
  -d '{"Column1": "Value1", "Column2": "Value2"}'

GraphQL :

curl -X POST http://localhost:{port}/graphql \
  -H "Content-Type: application/json" \
  -d '{"query": "{ {entityName} { items { Column1 Column2 } } }"}'

Conseil / Astuce

Remplacez {port} par le port que vous avez configuré pendant le déploiement (par défaut : 5000).

Intégration de GitHub Copilot

Pour les développeurs qui préfèrent le langage naturel, GitHub Copilot est intégré à l’expérience du générateur d’API de données. Sélectionnez le bouton Conversation dans la barre d’outils pour ouvrir une session de conversation GitHub Copilot limitée au contexte de configuration du générateur d’API de données. GitHub Copilot et l’interface utilisateur restent synchronisés : les modifications apportées par le biais d’une conversation sont immédiatement reflétées dans l’interface utilisateur et inversement.

Voici quelques exemples d’invites :

  • "Enable all SalesLT entities for read operations"
  • "Expose only the Customer and Product tables with full CRUD permissions"
  • "Set all entities in the dbo schema to read-only"
  • "Disable the BuildVersion and ErrorLog entities"
  • "Can you also enable MCP for the Data API builder API?"

L’exemple suivant montre GitHub Copilot activant des entités et configurant des autorisations CRUD via une invite de conversation :

Capture d’écran de GitHub Copilot activant les entités et définissant des autorisations CRUD via une invite de langage naturel dans la conversation du générateur d’API de données.

L’exemple suivant montre GitHub Copilot activant les points de terminaison MCP pour la configuration du générateur d’API de données :

Capture d’écran de GitHub Copilot activant les points de terminaison MCP via une invite en langage naturel dans la conversation du générateur d’API de données.

Note

L’intégration de GitHub Copilot nécessite que les extensions GitHub Copilot et GitHub Copilot Chat soient installées et connectées. Pour obtenir des instructions d’installation, consultez Configurer GitHub Copilot.

Limitations connues

  • Tables uniquement : l’interface utilisateur de configuration prend uniquement en charge les tables. Les vues et les procédures stockées ne sont pas disponibles dans le concepteur pour l’instant.
  • Docker Desktop requis : le déploiement local nécessite l’installation et l’exécution de Docker Desktop.
  • Authentification SQL uniquement : les conteneurs Docker locaux ne prennent pas en charge les méthodes d’authentification Microsoft Entra ID, telles que ActiveDirectoryInteractive, car l’environnement de conteneur ne peut pas ouvrir un navigateur pour le flux de connexion interactive. L’extension affiche une notification si votre connexion actuelle utilise un type d’authentification non pris en charge.
  • La base de données SQL dans Microsoft Fabric n’est pas prise en charge : la base de données SQL dans Microsoft Fabric nécessite l’authentification Microsoft Entra exclusivement et ne prend pas en charge l’authentification SQL. Étant donné que le déploiement de conteneur local nécessite une authentification SQL, le déploiement sur une base de données SQL dans Fabric n’est pas un scénario viable.
  • Clé primaire requise : chaque entité de table exposée via le générateur d’API de données doit avoir une contrainte de clé primaire définie au niveau de la base de données. Les tables sans clé primaire provoquent l’échec du moteur du générateur d’API de données au démarrage.
  • La sortie générée par l’IA doit être examinée : GitHub Copilot peut produire des configurations incorrectes ou non optimales. Passez toujours en revue les configurations générées avant le déploiement.

Problèmes connus

  • Types de données SQL Server non pris en charge : le générateur d’API de données ne peut pas sérialiser certains types de données SQL Server. Les tables contenant des colonnes avec des types non pris en charge peuvent entraîner l’échec du moteur au démarrage. Les types non pris en charge incluent geography, , geometryhierarchyid, rowversion, sql_variant, et xml. L'extension marque les entités affectées avec une icône d’avertissement et les empêche d’être sélectionnées pour le déploiement. Pour obtenir les informations les plus récentes sur la prise en charge des types de données, consultez le problème GitHub #3181.
  • Authentification interactive de l’ID Microsoft Entra non prise en charge pour le déploiement de conteneur : le conteneur du générateur d’API de données ne peut pas effectuer d’authentification Microsoft Entra interactive. Les connexions utilisant des méthodes d’ID Microsoft Entra interactives sont bloquées avec une notification. Pour plus d’informations, consultez le problème GitHub #3246.
  • MCP est en préversion : l’expérience MCP du générateur d’API de données est actuellement en préversion. Pour plus d’informations, consultez La préversion du générateur d’API de données MCP.

Commentaires et support

Si vous avez des idées, des commentaires ou souhaitez vous engager avec la communauté, rejoignez la discussion à l’adresse https://aka.ms/vscode-mssql-discussions. Pour signaler un bogue, visitez https://aka.ms/vscode-mssql-bug. Pour demander une nouvelle fonctionnalité, accédez à https://aka.ms/vscode-mssql-feature-request.