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.
| Camada | Responsabilidade |
|---|---|
| Cliente | Cria o cliente do DynamoDB a partir de variáveis de ambiente, incluindo um endpoint local opcional. |
| Entidade | Um modelo tipado do item, com os atributos de chave tipados a partir do schema e um contêiner para atributos adicionais. |
| Repositório | Métodos de acesso a dados: criar ou salvar, buscar por chave, listar, atualizar (onde houver suporte) e excluir. |
| Serviço | Camada de negócio que adiciona verificações de item não encontrado e um ponto para validações. |
| Ponto de entrada | Uma 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
- Abra o Code Generator
Clique em </> Code com a tabela que você quer modelar aberta.
- 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.
- 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
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| Linguagem | Ferramentas | Métodos do repositório |
|---|---|---|
| Node.js (TypeScript) | npm, TypeScript 5, Jest | create, findById, findAll, update, delete |
| Python | requirements.txt, pyproject.toml, boto3, dataclasses | create, find_by_id, find_all, update, delete |
| Java 17 | Maven, AWS SDK v2 + enhanced client | save, findById (Optional), findAll, delete |
| C# (.NET 8) | csproj, AWSSDK.DynamoDBv2, records | SaveAsync, FindByIdAsync, FindAllAsync, DeleteAsync |
| Go 1.21 | go.mod, aws-sdk-go-v2 | Save, FindByID, Delete |
| Ruby | Gemfile, aws-sdk-dynamodb, Struct entity | save, find_by_id, find_all, delete |
| PHP 8.1 | composer.json, aws-sdk-php, PSR-4 | save, findById, findAll, delete |
| AWS CLI | scripts bash + jq, Makefile | targets create, read, list, update, delete |
Depois de baixar
- Copie
.env.examplepara.enve 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 packagee 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.
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.