¿Por qué usar el SDK de Midaz para TypeScript?
- Tipado seguro por diseño: compatibilidad total con TypeScript y definiciones de tipos precisas.
- Patrón builder: interfaces fluidas y legibles para construir objetos complejos.
- Manejo de errores: estrategias de recuperación y señales de error claras.
- Observabilidad incluida: trazas, métricas y logs listos para usar.
- Arquitectura por capas: separación clara entre el cliente, las entidades, la API y los modelos.
- Reintentos automáticos: políticas de reintento configurables para fallas transitorias.
- Controles de concurrencia: herramientas integradas para ejecutar tareas en paralelo con un rendimiento controlado.
- Rápido gracias al cache: cache en memoria para un mejor rendimiento.
- Validación estricta: detecta datos de entrada inválidos desde el principio, con mensajes de error claros.
Primeros pasos
Prerrequisito
- El SDK de Midaz para TypeScript requiere TypeScript v5.8 o posterior.
Instalar el SDK
Instala el SDK de Midaz para TypeScript con uno de los siguientes comandos:Autenticación
El SDK de Midaz para TypeScript se autentica a través del Access Manager de Lerian (OAuth). Para un stack local con la autenticación deshabilitada, puedes crear un cliente sin ella. Nunca llamas a una fábrica
createClient. Crea una configuración con createClientConfigWithAccessManager() (o createClientConfigBuilder() para un stack local sin autenticación) y pásala a new MidazClient(config).
Autenticación con Access Manager
Para integrarte con proveedores de identidad externos mediante OAuth:Desarrollo local (sin autenticación)
Para un stack local de Midaz con la autenticación deshabilitada, crea un cliente sin el Access Manager:Guía de inicio rápido
Las siguientes secciones dan ejemplos de código prácticos para el SDK de Midaz para TypeScript.
Crear un cliente
El cliente es tu punto de entrada principal al SDK. Gestiona la autenticación y te da acceso a todos los servicios de entidades. Ejemplo:Crear un Activo
Crea assets con el patrón builder ycreateAssetBuilder.
Ejemplo:
name y assetCode al builder const assetInput = createAssetBuilder('US Dollar', 'USD'). Luego agregas cualquier otra propiedad con los métodos with*.
Crear una Cuenta
Crea cuentas con el patrón builder ycreateAccountBuilder.
Ejemplo:
name y assetCode al builder const accountInput = createAccountBuilder('Savings Account', 'USD'). Luego agregas cualquier otra propiedad con los métodos with*.
Crear una Transacción
Crea transacciones con el patrón builder ycreateTransactionBuilder.
Ejemplo:
with*.
Recuperación de errores
Usa la recuperación de errores mejorada para operaciones críticas.Liberar recursos
Usar Access Manager para la autenticación
Arquitectura del SDK
El SDK de Midaz usa una arquitectura de servicios en varias capas. Tiene tres capas, que se muestran en la Figura 1. Cada capa cumple un propósito distinto.
- Interfaz de cliente: es el punto de entrada principal para los usuarios del SDK. Gestiona la configuración, como las claves de API y los entornos. Inicializa los servicios de forma diferida y expone toda la funcionalidad del SDK.
- Capa de servicios de entidades: esta capa contiene los servicios específicos del dominio, como Cuentas, Activos y Transacciones. Cada servicio ofrece métodos consistentes: crear, obtener, actualizar, eliminar y listar. Cada servicio también agrega operaciones especializadas para su entidad.
- Capa de servicios core: todos los servicios de entidades usan estas utilidades fundamentales. Gestionan las solicitudes HTTP, la validación de entradas, el procesamiento de errores, la observabilidad, la configuración y el cache.
Figura 1. La arquitectura por capas del SDK de Midaz para TypeScript.
- Consistencia mediante patrones compartidos entre los servicios.
- Escalabilidad a través de la inyección de dependencias y las fábricas de servicios.
- Confiabilidad mediante un manejo de errores mejorado y respuestas tipadas.
- Capacidad de prueba: admite mocking, pruebas de integración y pruebas de contrato.
Patrón builder
El SDK de Midaz para TypeScript usa un patrón builder para ayudarte a ensamblar objetos complejos de forma segura y adaptable. En lugar de un conjunto fijo de entradas, te da una interfaz fluida, encadenable y paso a paso. Funciones builder en el SDK:
- Te indican los parámetros de antemano.
- Te permiten configurar campos opcionales con los métodos
.with*()y encadenarlos. - Evitan estados inválidos mediante una estructura guiada.
- Ocultan la complejidad interna para una mejor legibilidad.
Ejemplo
assetInput al método de creación correspondiente en el SDK.
Trabajar con entidades
Cada servicio de entidad cubre una parte distinta del dominio financiero, como cuentas, activos o transacciones. Estos servicios crean, recuperan, actualizan y eliminan datos para cada tipo de entidad. También ofrecen funciones especializadas para cada caso de uso.
Accedes a cada servicio a través del cliente del SDK. Siguen una estructura consistente, así que puedes construir y mantener funciones financieras con mayor facilidad.
Usar utilidades
El SDK ofrece módulos de utilidades para operaciones comunes: rendimiento, manejo de errores, configuración y observabilidad.
Manejo de errores
El SDK de Midaz para TypeScript te ayuda a manejar errores de forma clara y consistente. Cuando ocurre un error durante una operación del SDK, el SDK lanza un error estructurado. El error incluye campos clave:
code: un identificador breve y consistente para el tipo de error.message: una descripción legible para las personas.statusCode: el código de estado HTTP, cuando está disponible.
Códigos de error comunes
Mejores prácticas
- Valida los datos de entrada antes de llamar a los métodos del SDK, para evitar
invalid_input. - Revisa tu autenticación cuando obtengas
unauthorizedoforbidden. - Reintenta ante problemas transitorios como
internal_erroroservice_unavailable. - Usa
statusCodeymessagepara mostrar información de depuración en los logs de desarrollo.
Pipeline de CI/CD
Usamos GitHub Actions para builds automatizados y listos para producción:
- Ejecuta pruebas en varias versiones de Node.js.
- Aplica estándares de calidad de código con ESLint y Prettier.
- Mantiene las dependencias actualizadas con Dependabot.
- Gestiona los lanzamientos automáticamente con versionado semántico.
- Genera registros de cambios.
¿Quieres contribuir?
Para contribuir al SDK de Midaz para TypeScript, empieza con nuestra guía de contribución en GitHub.
Licencia
Este proyecto está bajo la licencia Apache License 2.0. Para más detalles, consulta la página de Licencia.

