Je veux connaître la différence entre le client AWS SDK DynamoDB et DynamoDB DocumentClient? Dans quel cas d'utilisation devrions-nous utiliser le client DynamoDB sur DocumentClient?
const dynamoClient = new AWS.DynamoDB.DocumentClient();
vs
const dynamo = new AWS.DynamoDB();
Je pense que cela peut être mieux répondu en comparant deux échantillons de code qui font la même chose.
Voici comment placer un élément à l'aide du client dynamoDB:
var params = {
Item: {
"AlbumTitle": {
S: "Somewhat Famous"
},
"Artist": {
S: "No One You Know"
},
"SongTitle": {
S: "Call Me Today"
}
},
TableName: "Music"
};
dynamodb.putItem(params, function (err, data) {
if (err) console.log(err)
else console.log(data);
});
Voici comment mettre le même élément à l'aide de l'API DocumentClient:
var params = {
Item: {
"AlbumTitle": "Somewhat Famous",
"Artist": "No One You Know",
"SongTitle": "Call Me Today"
},
TableName: "Music"
};
var documentClient = new AWS.DynamoDB.DocumentClient();
documentClient.put(params, function (err, data) {
if (err) console.log(err);
else console.log(data);
});
Comme vous pouvez le voir dans le DocumentClient
le Item
est spécifié de manière plus naturelle. Des différences similaires existent dans toutes les autres opérations qui mettent à jour DDB (update()
, delete()
) et dans les éléments renvoyés par les opérations de lecture (get()
, query()
, scan()
).
Selon le annonce du DocumentClient:
L'abstraction du client de document facilite la lecture et l'écriture de données dans Amazon DynamoDB avec le kit AWS SDK pour JavaScript. Vous pouvez désormais utiliser des objets JavaScript natifs sans les annoter en tant que types AttributeValue.
C'est essentiellement un moyen plus simple d'appeler dynamoDB dans le SDK et il convertit également les données de réponse annotées en types JS natifs. En règle générale, vous ne devez utiliser le client DynamoDB normal que lorsque vous effectuez des opérations plus "spéciales" sur votre base de données, comme la création de tables, etc.