Partager via


Qu’est-ce que le générateur d’API de données pour les bases de données Azure ?

Le générateur d’API de données (DAB) fournit une API REST sur une base de données. Il fournit également une API GraphQL. Il prend en charge non seulement SQL Server, mais azure SQL Database, Azure Cosmos DB, PostgreSQL, MySQL et SQL Data Warehouse. DAB s’exécute dans n’importe quel cloud ou local, et il est open source et gratuit à utiliser. Il est sécurisé, riche en fonctionnalités et un composant fondamental de Microsoft Fabric, qui est un autre moyen de dire qu’il s’agit d’une haute performance et capable de gérer des opérations de données massives.

Le générateur d’API de données remplace la plupart des API de données personnalisées qui effectuent des opérations CRUD génériques (Créer, Lire, Mettre à jour, Supprimer) sur une base de données. DAB est indépendant du langage, de la technologie et de l’infrastructure. Il nécessite zéro code et un seul fichier de configuration. Et surtout, il est entièrement gratuit, sans version premium, et peut s’exécuter sans état, n’importe où.

Illustration de la mascotte du générateur d’API de données, qui est une base de données avec un chapeau de construction avec un logo cloud.

Le générateur d’API de données est conçu pour les développeurs. DAB propose une interface CLI multiplateforme, Open Telemetry et Health Checks avec OpenAPI natif, Swagger pour les points de terminaison REST et Nitro (précédemment appelé Banana Cake Pop) pour les points de terminaison GraphQL. Son conteneur sans état et compatible avec Docker peut être sécurisé par EasyAuth, Microsoft Entra Identity ou par un serveur JSON Web Token (JWT) choisi par l'entreprise. Il dispose d’un moteur de stratégie flexible, de contrôles de sécurité granulaires et transmet automatiquement les données de revendications au contexte de session SQL.

Le générateur d’API de données (DAB) prend en charge plusieurs sources de données principales simultanément, notamment les sources relationnelles et NoSQL. DAB s’intègre également en toute transparence à Application Insights. Le fichier de configuration peut refléter les relations dans la base de données ou définir de nouvelles relations virtuelles avec prise en charge du rechargement à chaud. Les points de terminaison GraphQL autorisent plusieurs instructions Create imbriquées au sein d’une transaction unique, tandis que les points de terminaison REST sont mis en cache en mémoire et prennent en charge de manière enrichie les mots clés de chaîne de requête de type OData.

DAB s’intègre en mode natif à Azure Static Web Apps. Il fonctionne également très bien avec Azure Container Apps, Azure Container Instances, Azure Kubernetes Services et Azure Web Apps for Containers. DAB fonctionne avec ces services tout en prenant entièrement en charge les déploiements personnalisés et locaux.

DAB prend en charge :

  • Serveur SQL
  • Azure SQL
  • Azure Cosmos DB pour NoSQL
  • PostgreSQL
  • Base de données Azure pour PostgreSQL
  • Azure Cosmos DB pour PostgreSQL
  • MySQL
  • Azure Database pour MySQL
  • Azure SQL Data Warehouse

DAB peut réduire une base de code classique par un troisième, éliminer les suites de tests unitaires, raccourcir les pipelines CI/CD et introduire des normes et des fonctionnalités avancées généralement réservées aux plus grandes équipes de développement. Il est sécurisé et riche en fonctionnalités tout en restant incroyablement simple, évolutif et observable.

Architecture

Ce diagramme décompose la relation entre tous les composants du générateur d’API de données.

Diagramme montrant une vue d’ensemble de l’architecture du Générateur d’API de données. Le diagramme comprend des fichiers de schéma, des abstractions, des fichiers de configuration et des points de terminaison GraphQL+REST résultants.

Fonctionnalités clés

  • Prise en charge des collections NoSQL
  • Prise en charge des tables relationnelles, des vues et des procédures stockées
  • Prendre en charge plusieurs sources de données simultanées
  • Prise en charge de l’authentification via OAuth2/JWT
  • Prise en charge d’EasyAuth et de Microsoft Entra Identity
  • Autorisation basée sur des rôles à partir de revendications reçues
  • Sécurité au niveau de l'élément via des expressions de stratégie
  • Points de terminaison REST
    • POST, GET, PUT, PATCH, DELETE
    • Filtrage, tri et pagination
    • Cache en mémoire
    • Prise en charge d’OpenAPI
  • Point de terminaison GraphQL
    • Requêtes et mutations
    • Filtrage, tri et pagination
    • Navigation entre les relations
    • Schémas dynamiques
  • Développement facile via l’interface CLI dédiée
  • Intégration pour les applications web statiques via une connexion à une base de données
  • Open source & gratuit

Libre

Le générateur d’API de données est open source et publié sous la licence MIT. Le référentiel est disponible sur GitHub sur azure/data-api-builder.