Diferenças da API de documentos do entre a versão 1 e a versão 2 do AWS SDK para Java - AWS SDK for Java 2.x

Diferenças da API de documentos do entre a versão 1 e a versão 2 do AWS SDK para Java

A API de documentos é compatível com o trabalho com documentos no estilo JSON como itens únicos em uma tabela do DynamoDB. A API de documentos da V1 tem uma API correspondente na V2, mas em vez de usar um cliente separado para a API de documentos, como na V1, a V2 incorpora recursos dessa API no cliente aprimorado do DynamoDB.

Na V1, a classe Item representa um registro não estruturado de uma tabela do DynamoDB. Na V2, um registro não estruturado é representado por uma instância da classe EnhancedDocument. Observe que as chaves primárias são definidas no esquema da tabela para a V2 e no próprio item na V1.

A tabela abaixo compara as diferenças entre as APIs de documentos na V1 e na 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();

Referência de API e guias para APIs de documentos