DynamoOps
Ferramentas para desenvolvedores

Gerador de SDK

Baixe um projeto completo de acesso a dados, pensado para produção, para a sua tabela em TypeScript, Python, Java, C#, Go, Ruby, PHP ou shell, com as camadas de entidade, repositório, serviço e cliente já conectadas.

O que você recebe

O gerador de SDK lê o schema de chaves da tabela aberta e gera um ZIP com um projeto pronto para rodar na linguagem da aba ativa do Code Generator. Todos os projetos seguem a mesma estrutura em camadas, para que as equipes possam alternar entre stacks sem reaprender a organização.

CamadaResponsabilidade
ClienteCria o cliente do DynamoDB a partir de variáveis de ambiente, incluindo um endpoint local opcional.
EntidadeUm modelo tipado do item, com os atributos de chave tipados a partir do schema e um contêiner para atributos adicionais.
RepositórioMétodos de acesso a dados: criar ou salvar, buscar por chave, listar, atualizar (onde houver suporte) e excluir.
ServiçoCamada de negócio que adiciona verificações de item não encontrado e um ponto para validações.
Ponto de entradaUma pequena demonstração que exercita as camadas de ponta a ponta.

Cada ZIP também inclui um README, um manifesto de dependências e um .env.example com AWS_REGION, placeholders de credenciais e DYNAMO_ENDPOINT para o DynamoDB Local.

Gerando um projeto

O botão Download SDK fica ao lado do seletor de modo e usa a aba de linguagem ativa.
  1. Abra o Code Generator

    Clique em </> Code com a tabela que você quer modelar aberta.

  2. Escolha a aba de linguagem

    Node.js (TypeScript), Python, Java, C#, Go, Ruby, PHP ou AWS CLI. A aba AWS CLI gera um projeto de shell script com um Makefile.

  3. Clique em ⬇ Download SDK

    O ZIP é montado no próprio app e salvo como <table>-dynamo-sdk-<language>.zip, contendo uma pasta raiz <table>-dynamo-sdk/.

O nome da entidade é a forma singular em PascalCase do nome da tabela: users vira User e policies vira Policy.

Estrutura dos projetos

users-dynamo-sdk/ (Node.js / TypeScript)
package.json            @aws-sdk/client-dynamodb, @aws-sdk/lib-dynamodb, dotenv, typescript, jest
tsconfig.json
.env.example
README.md
src/
  client/dynamoClient.ts          DocumentClient singleton, DYNAMO_ENDPOINT support
  entities/User.ts                User interface + CreateUserInput
  repositories/UserRepository.ts  create, findById, findAll(limit), update, delete
  services/UserService.ts         not-found checks around the repository
  index.ts                        demo
LinguagemFerramentasMétodos do repositório
Node.js (TypeScript)npm, TypeScript 5, Jestcreate, findById, findAll, update, delete
Pythonrequirements.txt, pyproject.toml, boto3, dataclassescreate, find_by_id, find_all, update, delete
Java 17Maven, AWS SDK v2 + enhanced clientsave, findById (Optional), findAll, delete
C# (.NET 8)csproj, AWSSDK.DynamoDBv2, recordsSaveAsync, FindByIdAsync, FindAllAsync, DeleteAsync
Go 1.21go.mod, aws-sdk-go-v2Save, FindByID, Delete
RubyGemfile, aws-sdk-dynamodb, Struct entitysave, find_by_id, find_all, delete
PHP 8.1composer.json, aws-sdk-php, PSR-4save, findById, findAll, delete
AWS CLIscripts bash + jq, Makefiletargets create, read, list, update, delete

Depois de baixar

  • Copie .env.example para .env e preencha a região e as credenciais, ou use o seu perfil da AWS.
  • Instale as dependências com o comando indicado no README (npm install, pip install -r requirements.txt, mvn package e assim por diante).
  • Renomeie o pacote ou namespace padrão (com.example.dynamo, App\, github.com/example/…) para corresponder à sua organização.
  • Estenda a entidade com os seus atributos que não são chave; apenas os atributos de chave são tipados a partir do schema.
Escopo
O código gerado é um ótimo ponto de partida, não uma biblioteca pronta. Revise o tratamento de erros, adicione paginação onde findAll retorna uma única página e escreva testes antes de colocar em produção. Combine-o com a exportação de IaC para que a definição da tabela e o código fiquem no mesmo repositório.

Relacionados