Partager via


Ajouter plusieurs sources de données

Le générateur d’API de données prend en charge les points de terminaison hybrides à l’aide de fichiers de source de données, ce qui vous permet de définir plusieurs sources de données et leurs entités dans des fichiers de configuration distincts.

Cette approche est utile pour les scénarios tels que :

  • Vous devez exposer des entités à partir de plusieurs bases de données
  • Vous souhaitez organiser les configurations de manière modulaire
  • Vous devez gérer les différents back-ends de données indépendamment

Structure

Pour définir plusieurs sources de données, créez plusieurs fichiers de configuration et référencez-les dans le data-source-files tableau de la configuration de niveau supérieur.

Fichier de niveau supérieur

{
  "data-source-files": [
    "dab-config-sql.json",
    "dab-config-cosmos.json"
  ],
  "runtime": {
    "rest": {
      "enabled": true
    },
    "graphql": {
      "enabled": true
    },
    "mcp": {
      "enabled": true
    }

  }
}

Fichier enfant : dab-config-sql.json

{
  "data-source": {
    "database-type": "mssql",
    "connection-string": "@env('SQL_CONNECTION_STRING')"
  },
  "entities": {
    "Book": {
      "source": {
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ]
    }
  }
}

Fichier enfant : dab-config-cosmos.json

{
  "data-source": {
    "database-type": "cosmosdb_nosql",
    "connection-string": "@env('COSMOS_CONNECTION_STRING')",
    "options": {
      "database": "library"
    }
  },
  "entities": {
    "LoanRecord": {
      "source": {
        "object": "LoanRecords"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ]
    }
  }
}

Behavior

  • Seuls les paramètres du runtime fichier de niveau supérieur sont respectés
  • Chaque fichier enfant doit contenir à la fois une et data-source une entities section
  • Les noms d’entités doivent être globalement uniques dans tous les fichiers
  • Les entités définies dans des fichiers distincts ne peuvent pas se référencer par le biais de relations
  • Les fichiers peuvent être imbriqués dans les sous-dossiers selon les besoins

Benefits

  • Séparation propre de la configuration par back-end
  • Active les API multi-bases de données évolutives
  • Simplifie la maintenance des systèmes complexes

Limitations

  • Aucune relation entre les fichiers de configuration
  • Les références de fichiers circulaires ne sont pas autorisées
  • Seul le comportement du runtime des contrôles de fichier de niveau supérieur