Sobre APIs SDK do OCI

O Oracle Cloud Infrastructure fornece vários SDKs para facilitar o desenvolvimento de soluções personalizadas.

Os SDKs (SDKs) são usados para criar e implantar aplicativos integrados aos serviços do Oracle Cloud Infrastructure. Existem diferentes SDKs do OCI que suportam Java, Python, Go, .NET, Typescript, Javascript e Ruby. Cada SDK fornece as ferramentas necessárias ao desenvolvimento de um aplicativo, incluindo amostras de código e documentação para criar, testar, diagnosticar e solucionar problemas. O Oracle Cloud Infrastructure SDK permite que você crie código para gerenciar recursos do Oracle Cloud Infrastructure.

Usando APIs do OCI SDK

Para usar os SDKs do OCI, você deve ter o seguinte:
  • Uma conta no Oracle Cloud Infrastructure.
  • Um usuário que é criado nessa conta em um grupo com uma política que concede as permissões desejadas. Pode ser um usuário para você mesmo ou para outra pessoa/sistema que precise chamar a API.
OCI SDK for Java: Você pode fazer download do OCI SDK for Java aqui. Além dos requisitos acima, você precisa ter o Java Versão 8 ou mais instalado. Para obter mais detalhes, consulte SDK para Java.

Observação:

O OCI SDK também está disponível para Python, Go, Typescript, Javascript, .NET e Ruby. Consulte Guias do OCI SDK para obter mais detalhes.

Criando uma tabela Singleton com o OCI Java SDK

Você pode usar a classe CreateTableRequest dentro de um método createTable para criar uma nova tabela NoSQL.

O trecho de código a seguir mostra como usar o OCI Java SDK para criar uma tabela única.
private static final String DEF_OCI_CONFIG = "~/.oci/config";
private static final String DEF_PROFILE = "DEFAULT";
String tableName = "<table_name>"; 
String region = "<region_name>";

/* Initialize NoSQLHandle */
   NosqlClient client = connect(endpoint, DEF_OCI_CONFIG, DEF_PROFILE);

/* Create table */
   String ddl = "CREATE TABLE IF NOT EXISTS " + tableName + "(" +
                     "id INTEGER, info JSON, PRIMARY KEY(id)) " ;
   TableLimits limits = TableLimits.builder()
                .maxReadUnits(50)
                .maxWriteUnits(50)
                .maxStorageInGBs(1)
                .build();
   CreateTableDetails.Builder payload = CreateTableDetails.builder()
                .compartmentId(compartmentId)
                .name(tableName)
                .ddlStatement(ddl)
                .tableLimits(limits);
   CreateTableRequest tableReq = CreateTableRequest.builder()
                .createTableDetails(payload.build())
                .build();
   CreateTableResponse tableRes = client.createTable(tableReq);
        output("\nCreating table: " + ddl);
        waitForComplete(client, tableRes.getOpcWorkRequestId());
        output("Table created: " + tableName);

Criando tabela Global Active com o OCI Java SDK

Você pode usar o OCI Java SDK para criar uma tabela Ativa Global no NDCS.

Para criar uma tabela Ativa Global:
  • Crie uma tabela NoSQL com pelo menos uma coluna JSON nela.
  • Congelar o esquema da tabela. Você pode congelar a tabela ao criá-la adicionando com o esquema congelado na instrução DDL CREATE TABLE.
  • Uma tabela de Banco de Dados NoSQL só se torna uma tabela Ativa Global depois de adicionar uma tabela de réplica regional. A tabela de réplica regional é criada em outra região.
O trecho de código a seguir mostra como criar uma tabela Global Active usando o OCI Java SDK.
private static final String DEF_OCI_CONFIG = "~/.oci/config";
private static final String DEF_PROFILE = "DEFAULT";
String tableName = "<table_name>"; 
String region = "<region_name>";

/* Initialize NoSQLHandle */
   NosqlClient client = connect(endpoint, DEF_OCI_CONFIG, DEF_PROFILE);

/* Create table */
   String ddl = "CREATE TABLE IF NOT EXISTS " + tableName + "(" +
                     "id INTEGER, info JSON, PRIMARY KEY(id)) " +
                     "with schema frozen";
   TableLimits limits = TableLimits.builder()
                .maxReadUnits(50)
                .maxWriteUnits(50)
                .maxStorageInGBs(1)
                .build();
   CreateTableDetails.Builder payload = CreateTableDetails.builder()
                .compartmentId(compartmentId)
                .name(tableName)
                .ddlStatement(ddl)
                .tableLimits(limits);
   CreateTableRequest tableReq = CreateTableRequest.builder()
                .createTableDetails(payload.build())
                .build();
   CreateTableResponse tableRes = client.createTable(tableReq);
        output("\nCreating table: " + ddl);
        waitForComplete(client, tableRes.getOpcWorkRequestId());
        output("Table created: " + tableName);

/* Add replica ca-montreal-1 */
   CreateReplicaDetails info = CreateReplicaDetails
                .builder()
                .region(region)
                .compartmentId(compartmentId)
                .build();
   CreateReplicaRequest replicaReq = CreateReplicaRequest
                .builder()
                .tableNameOrId(tableName)
                .createReplicaDetails(info)
                .build();
   CreateReplicaResponse replicaRes = client.createReplica(replicaReq);
        output("\nAdding replica: " + region);
        waitForComplete(client, replicaRes.getOpcWorkRequestId());
        output("Added replica: " + region);