API de données pour Azure DocumentDB (préversion)

L’API de données pour Azure DocumentDB est une interface https qui permet aux développeurs d’accéder à leurs données et d’interagir avec leurs données sans avoir besoin d’un pilote de base de données. Il simplifie les opérations de données en activant les opérations de plan de contrôle et d’agrégation par le biais de requêtes HTTP. Cette API est idéale pour les applications web, offrant un accès sécurisé et évolutif aux bases de données.

Activation de l’API de données sur Azure DocumentDB

Vous pouvez activer ou désactiver cette fonctionnalité à l’aide du portail Azure, d’Azure CLI ou d’un modèle ARM.

Étapes d’activation de l’API de données sur le portail Azure

  1. Accéder au portail Azure

    • portal.azure.com
  2. Accéder à votre cluster Azure DocumentDB

  3. Ouvrez le panneau « Fonctionnalités »

  4. Cliquez sur « API de données »

  5. Cliquez sur « Activer »

  6. Vérifier le résultat

    • Votre panneau « Fonctionnalités » doit maintenant afficher « API de données » comme « Activé ».

Étapes d’activation de l’API de données sur le cluster via un modèle ARM

  1. Obtenir la chaîne de connexion :

    • Obtenez la chaîne de connexion de votre cluster à partir du portail Azure.
  2. Récupérer le jeton d’authentification :

    • Exécutez les commandes suivantes dans Windows PowerShell :
      az login
      az account get-access-token --resource-type arm
      
  3. Envoyer une requête PATCH :

    • Utilisez la chaîne de connexion à partir du portail Azure et envoyez une requête PATCH avec :
      • Jeton d’authentification : utilisez le jeton récupéré à partir de PowerShell.
      • Corps :
        {
          "properties": {
            "dataApi": {
              "mode": "Enabled"
            }
          }
        }
        
  4. Vérifiez le résultat :

    • Vérifiez que la charge utile de réponse inclut "dataApi": {"mode": "Enabled"}.
    • Si vous rencontrez l’erreur « L’API de données n’est pas prise en charge sur ce cluster », notez que seuls les clusters nouvellement provisionnés prennent en charge l’API de données.

Mettre à jour la configuration du cluster

Requête

Méthode:PATCH
Extrémité:https://eastus2euap.management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.DocumentDB/mongoClusters/<ClusterName>?api-version=2024-10-01-preview

Corps de la demande

{
  "properties": {
    "dataApi": {
      "mode": "Enabled"
    }
  }
}

Obtenir la chaîne de connexion

Pour obtenir la chaîne de connexion de votre cluster, procédez comme suit :

  1. Accédez au cluster que vous avez créé.
  2. Accédez à Paramètres et sélectionnez Chaînes de connexion.
  3. Copiez le point de terminaison de l’API de données fourni.

Utilisation de l’API de données

Examinons les opérations prises en charge, comment utiliser l’API de données.

Aggregate

Utilisez cette commande pour effectuer une opération d’agrégation sur une collection.

curl {cluster-name}.data.mongocluster.cosmos.azure.com:443/data/v1/action/aggregate -H "Content-Type: application/ejson" -H "Accept:application/ejson" -d '{"database" : "testDB", "collection" : "testCollection", "pipeline" : [{"$limit" : 500}]}' --user "{username}:{password}"
{ "documents" : [ { "_id" : { "$oid" : "680957492551581200c73bf8" }, "name" : "Sample Document", "createdAt" : { "$date" : { "$numberLong" : "1745442633506" } }, "tags" : [ "test", "mongo", "sample" ] } ] }

Répertorier les bases de données

Répertorier toutes les bases de données dans le cluster spécifié.

curl {cluster-name}.data.global.mongocluster.cosmos.azure.com:443/data/v1/action/listDatabases -H "Content-Type: application/ejson" -H "Accept:application/ejson" -d '{}' --user "{username}:{password}"
{ "databases" : [ { "name" : "testDB", "sizeOnDisk" : { "$numberInt" : "0" }, "empty" : false }, { "name" : "test", "sizeOnDisk" : { "$numberInt" : "0" }, "empty" : false } ], "totalSize" : { "$numberInt" : "0" }, "ok" : { "$numberDouble" : "1.0" } }

Lister les collections

Répertorier toutes les collections au sein d’une base de données spécifique.

curl {cluster-name}.data.global.mongocluster.cosmos.azure.com:443/data/v1/action/listCollections -H "Content-Type: application/ejson" -H "Accept:application/ejson" -d '{"database": "newDB"}' --user "{username}:{password}"
{ "collections" : [ { "name" : "testCollection", "type" : "collection", "options" : {  }, "info" : { "readOnly" : false, "uuid" : { "$binary" : { "base64" : "mNh96KepTm+NtLtALGxDiw==", "subType" : "04" } } }, "idIndex" : { "v" : { "$numberInt" : "2" }, "name" : "_id_", "key" : { "_id" : { "$numberInt" : "1" } } } } ] }

Obtenir le schéma

Récupérez les détails du schéma d’une base de données spécifique.

Voici la version mise en forme de votre fichier .md :

curl {cluster-name}.data.mongocluster.cosmos.azure.com:443/data/v1/action/getSchema -H "Content-Type: application/ejson" -H "Accept:application/ejson" -d '{"database" : "testDB", "collection" : "testCollection"}' --user "{username}:{password}"
{ "_id" : { "bsonType" : "objectId" }, "name" : { "bsonType" : "string" }, "createdAt" : { "bsonType" : "date" }, "tags" : { "bsonType" : "array" } }

Limitations

  • L’API de données fonctionne sur un cluster nouvellement créé.
  • L’API de données ne prend pas en charge l’accès à l’aide d’un jeton d’accès réutilisable.
  • Prend uniquement en charge l’agrégation du plan de données et les actions limitées du plan de contrôle.