Generador de SDK
Descarga un proyecto completo de acceso a datos para tu tabla, orientado a producción, en TypeScript, Python, Java, C#, Go, Ruby, PHP o shell, con las capas de entidad, repositorio, servicio y cliente ya conectadas.
Qué obtienes
El generador de SDK lee el esquema de claves de la tabla abierta y produce un ZIP con un proyecto listo para ejecutar en el lenguaje de la pestaña activa del Code Generator. Todos los proyectos siguen la misma estructura en capas, para que los equipos puedan pasar de un stack a otro sin volver a aprender la organización.
| Capa | Responsabilidad |
|---|---|
| Client | Crea el cliente de DynamoDB a partir de variables de entorno, incluido un endpoint local opcional. |
| Entity | Un modelo tipado del ítem, con los atributos clave tipados según el esquema y un contenedor para atributos adicionales. |
| Repository | Métodos de acceso a datos: crear o guardar, buscar por clave, listar, actualizar donde se admite, eliminar. |
| Service | Envoltorio de nivel de negocio que agrega verificaciones de “no encontrado” y un lugar para la validación. |
| Entry point | Una pequeña demo que recorre todas las capas de principio a fin. |
Cada ZIP incluye además un README, un manifiesto de dependencias y un .env.example con AWS_REGION, marcadores para las credenciales y DYNAMO_ENDPOINT para DynamoDB Local.
Generar un proyecto
- Abre el Code Generator
Haz clic en </> Code con la tabla que quieres modelar abierta.
- Elige la pestaña de lenguaje
Node.js (TypeScript), Python, Java, C#, Go, Ruby, PHP o AWS CLI. La pestaña AWS CLI genera un proyecto de scripts de shell con un Makefile.
- Haz clic en ⬇ Download SDK
El ZIP se arma dentro de la app y se guarda como
<table>-dynamo-sdk-<language>.zip, con una carpeta raíz<table>-dynamo-sdk/.
El nombre de la entidad es la forma singular en PascalCase del nombre de la tabla: users pasa a ser User y policies pasa a ser Policy.
Estructura de los proyectos
package.json @aws-sdk/client-dynamodb, @aws-sdk/lib-dynamodb, dotenv, typescript, jest
tsconfig.json
.env.example
README.md
src/
client/dynamoClient.ts singleton de DocumentClient, soporte de DYNAMO_ENDPOINT
entities/User.ts interfaz User + CreateUserInput
repositories/UserRepository.ts create, findById, findAll(limit), update, delete
services/UserService.ts verificaciones de no encontrado sobre el repositorio
index.ts demo| Lenguaje | Herramientas | Métodos del repositorio |
|---|---|---|
| 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, entidad Struct | 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 |
Después de descargar
- Copia
.env.examplea.envy completa la región y las credenciales, o usa tu perfil de AWS. - Instala las dependencias con el comando indicado en el README (
npm install,pip install -r requirements.txt,mvn package, etc.). - Renombra el paquete o namespace predeterminado (
com.example.dynamo,App\,github.com/example/…) según tu organización. - Amplía la entidad con tus atributos que no son clave; solo los atributos clave se tipan a partir del esquema.
findAll devuelve una sola página y agrega pruebas antes de publicar. Combínalo con la exportación de IaC para que la definición de la tabla y el código vivan en el mismo repositorio.