Skip to main content
El SDK de Midaz para TypeScript te ayuda a crear integraciones financieras. Te da una interfaz tipada, clara para desarrolladores, sobre la plataforma de servicios financieros de Midaz. El SDK funciona con Organizaciones, Ledgers, Cuentas y Transacciones, entre otras entidades. Úsalo para un workflow simple o para operaciones complejas.

¿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:
Después de instalarlo, sigue la Guía de inicio rápido para aprender a usar el SDK.

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:
El Access Manager gestiona los tokens por ti: adquisición, cache y renovación. No administras tokens de forma manual.

Desarrollo local (sin autenticación)

Para un stack local de Midaz con la autenticación deshabilitada, crea un cliente sin el Access Manager:
Ofrecemos un plugin de Access Manager que puedes usar. Si quieres saber más, contáctanos.

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 y createAssetBuilder. Ejemplo:
En este código, agregas los campos obligatorios 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 y createAccountBuilder. Ejemplo:
En este código, agregas los campos obligatorios 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 y createTransactionBuilder. Ejemplo:
En este código, agregas todas las propiedades con los métodos 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.
Arquitectura por capas del SDK de Midaz para TypeScript, con la interfaz de cliente sobre la capa de servicios de entidades sobre la capa compartida de servicios core

Figura 1. La arquitectura por capas del SDK de Midaz para TypeScript.

La arquitectura del SDK hace énfasis en:
  • 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

Luego puedes pasar este assetInput al método de creación correspondiente en el SDK.
Para más información, consulta la página Patrón builder en el SDK de Midaz.

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.
Para más información, consulta las páginas de Entidades.

Usar utilidades


El SDK ofrece módulos de utilidades para operaciones comunes: rendimiento, manejo de errores, configuración y observabilidad.
Para más información, consulta las páginas de Utilidades.

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.
Maneja un error así:

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 unauthorized o forbidden.
  • Reintenta ante problemas transitorios como internal_error o service_unavailable.
  • Usa statusCode y message para 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.