Documenta las diferencias de la API entre la versión 1 y la 2 del AWS SDK para Java - AWS SDK for Java 2.x

Documenta las diferencias de la API entre la versión 1 y la 2 del AWS SDK para Java

La API de documentos permite trabajar con documentos de estilo JSON como elementos individuales en una tabla de DynamoDB. La API de documentos de la V1 tiene una API correspondiente en la V2, pero en lugar de utilizar un cliente independiente para la API de documentos como en la V1, la V2 incorpora características de la API de documentos en el cliente mejorado de DynamoDB.

En la V1, la clase Item representa un registro no estructurado de una tabla de DynamoDB. En la V2, un registro no estructurado se representa mediante una instancia de la clase EnhancedDocument. Tenga en cuenta que las claves principales se definen en el esquema de tabla en la V2 y en el propio elemento en la V1.

En la siguiente tabla se comparan las diferencias entre las API de documentos de la V1 y la V2.

Caso de uso V1 V2
Create a document client
AmazonDynamoDB client = ... //Create a client. DynamoDB documentClient = new DynamoDB(client);
// The V2 Document API uses the same DynamoDbEnhancedClient // that is used for mapping POJOs. DynamoDbClient standardClient = ... //Create a standard client. DynamoDbEnhancedClient enhancedClient = ... // Create an enhanced client.
Reference a table
Table documentTable = docClient.documentClient("Person");
DynamoDbTable<EnhancedDocument> documentTable = enhancedClient.table("Person", TableSchema.documentSchemaBuilder() .addIndexPartitionKey(TableMetadata.primaryIndexName(),"id", AttributeValueType.S) .attributeConverterProviders(AttributeConverterProvider.defaultProvider()) .build());
Work with semi-structured data
Put item
Item item = new Item() .withPrimaryKey("id", 50) .withString("firstName", "Shirley"); PutItemOutcome outcome = documentTable.putItem(item);
EnhancedDocument personDocument = EnhancedDocument.builder() .putNumber("id", 50) .putString("firstName", "Shirley") .build(); documentTable.putItem(personDocument);
Get item
GetItemOutcome outcome = documentTable.getItemOutcome( "id", 50); Item personDocFromDb = outcome.getItem(); String firstName = personDocFromDb.getString("firstName");
EnhancedDocument personDocFromDb = documentTable .getItem(Key.builder() .partitionValue(50) .build()); String firstName = personDocFromDb.getString("firstName");
Work with JSON items
Convert a JSON structure to use it with the Document API
// The 'jsonPerson' identifier is a JSON string. Item item = new Item().fromJSON(jsonPerson);
// The 'jsonPerson' identifier is a JSON string. EnhancedDocument document = EnhancedDocument.builder() .json(jsonPerson).build());
Put JSON
documentTable.putItem(item)
documentTable.putItem(document);
Read JSON
GetItemOutcome outcome = //Get item. String jsonPerson = outcome.getItem().toJSON();
String jsonPerson = documentTable.getItem(Key.builder() .partitionValue(50).build()) .fromJson();

Referencia y guías de API para API de documentos