DynamoOps
Herramientas para desarrolladores

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.

CapaResponsabilidad
ClientCrea el cliente de DynamoDB a partir de variables de entorno, incluido un endpoint local opcional.
EntityUn modelo tipado del ítem, con los atributos clave tipados según el esquema y un contenedor para atributos adicionales.
RepositoryMétodos de acceso a datos: crear o guardar, buscar por clave, listar, actualizar donde se admite, eliminar.
ServiceEnvoltorio de nivel de negocio que agrega verificaciones de “no encontrado” y un lugar para la validación.
Entry pointUna 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

El botón Download SDK está junto al selector de modo y usa la pestaña de lenguaje activa.
  1. Abre el Code Generator

    Haz clic en </> Code con la tabla que quieres modelar abierta.

  2. 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.

  3. 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

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          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
LenguajeHerramientasMétodos del repositorio
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, entidad Structsave, 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

Después de descargar

  • Copia .env.example a .env y 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.
Alcance
El código generado es un punto de partida sólido, no una biblioteca terminada. Revisa el manejo de errores, agrega paginación donde 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.

Relacionados