¿Por qué usar el SDK de Midaz para TypeScript?
- Seguridad de tipos por diseño: Soporte completo de TypeScript con definiciones de tipos precisas.
- Patrón de constructor: Interfaces fluidas y legibles para construir objetos complejos.
- Manejo robusto de errores: Estrategias de recuperación y señales de error claras.
- Observabilidad incluida: Rastreo, métricas y registros, listos para usar.
- Arquitectura en capas: Separación limpia entre cliente, entidades, API y modelos.
- Reintentos automáticos: Políticas de reintento configurables para fallos transitorios.
- Controles de concurrencia: Herramientas integradas para ejecutar tareas en paralelo con control del rendimiento.
- Rápido con caché: Caché en memoria para mejor rendimiento.
- Validación estricta: Detecta entrada inválida temprano con mensajes de error claros.
Comenzando
Prerrequisito
- El SDK de Midaz para TypeScript requiere TypeScript v5.8 o posterior.
Instalación del 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 construir un cliente sin él. Nunca llamas a una función
createClient — construye 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 integrar con proveedores de identidad externos mediante OAuth:Desarrollo local (sin autenticación)
Para un stack local de Midaz con la autenticación deshabilitada, construye un cliente sin el Access Manager:Guía de inicio rápido
Las siguientes secciones te dan ejemplos de código prácticos para el SDK de Midaz para TypeScript.
Crear un cliente
Este es el primer paso. El cliente es tu punto de entrada principal al SDK. Maneja la autenticación y te da acceso a todos los servicios de entidades. Ejemplo:Crear un Activo
Crea activos con el patrón de constructor ycreateAssetBuilder.
Ejemplo:
name y assetCode al constructor 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 de constructor ycreateAccountBuilder.
Ejemplo:
name y assetCode al constructor 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 de constructor ycreateTransactionBuilder.
Ejemplo:
with*.
Recuperación de errores
Usa la recuperación de errores mejorada para operaciones críticas.Limpiar recursos
Usar Access Manager para autenticación
Arquitectura del SDK
El SDK de Midaz usa una arquitectura de servicios de múltiples capas para una experiencia de desarrollador limpia, modular y escalable. Tiene tres capas, mostradas en la Figura 1. Cada capa sirve un propósito distinto.
- Interfaz del cliente: Este es el punto de entrada principal para los usuarios del SDK. Gestiona la configuración como claves API y entornos. Inicializa servicios de manera perezosa y expone toda la funcionalidad del SDK.
- Capa de servicios de entidades: Esta capa contiene servicios específicos de 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 centrales: Todos los servicios de entidades usan estas utilidades fundamentales. Manejan solicitudes HTTP, validación de entrada, procesamiento de errores, observabilidad, configuración y almacenamiento en caché.
Figura 1. La arquitectura en capas del SDK de Midaz para TypeScript.
- Consistencia a través de patrones compartidos en todos los servicios.
- Escalabilidad mediante inyección de dependencias y fábricas de servicios.
- Confiabilidad a través de manejo mejorado de errores y respuestas tipadas.
- Facilidad de prueba con soporte para pruebas de simulación, integración y contrato.
Patrón de constructor
El SDK de Midaz para TypeScript usa un patrón de constructor para ayudarte a ensamblar objetos complejos de manera segura y adaptable. En lugar de un conjunto fijo de entradas, te da una interfaz fluida, paso a paso y encadenable. Funciones de constructor en el SDK:
- Te informan los parámetros por adelantado.
- Te permiten definir campos opcionales con los métodos
.with*()y encadenarlos. - Evitan estados inválidos a través de una estructura guiada.
- Ocultan la complejidad interna para mejor legibilidad.
Ejemplo
Aquí hay un ejemplo rápido:assetInput al método de creación correspondiente en el SDK.
Trabajando 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 características especializadas para cada caso de uso, para que manejes datos financieros con confianza.
Accedes a cada servicio a través del cliente SDK. Siguen una estructura consistente, para que construyas y mantengas características financieras más fácilmente.
Uso de utilidades
El SDK proporciona módulos de utilidad para operaciones comunes: rendimiento, manejo de errores, configuración y observabilidad. Estas herramientas trabajan con el resto del SDK y te ayudan a construir aplicaciones financieras con menos esfuerzo.
Manejo de errores
El SDK de Midaz para TypeScript te ayuda a manejar errores de manera 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 corto y consistente para el tipo de error.message: Una descripción legible por humanos.statusCode: El código de estado HTTP, cuando esté disponible.
Códigos de error comunes
Mejores prácticas
- Valida la entrada antes de llamar a los métodos del SDK, para evitar
invalid_input. - Verifica tu autenticación cuando obtengas
unauthorizedoforbidden. - Reintenta en problemas transitorios como
internal_erroroservice_unavailable. - Usa
statusCodeymessagepara mostrar información de depuración en los registros de desarrollo.
Pipeline de CI/CD
Usamos GitHub Actions para builds automatizados y listos para producción:
- Ejecuta pruebas en múltiples versiones de Node.js.
- Hace cumplir la calidad del código con ESLint y Prettier.
- Mantiene las dependencias actualizadas con Dependabot.
- Maneja versiones automáticamente con versionado semántico.
- Genera registros de cambios.
¿Quieres contribuir?
Para contribuir al SDK de Midaz para TypeScript, comienza con nuestra guía de contribución en GitHub. Cubre lo que necesitas para comenzar.
Licencia
Este proyecto está licenciado bajo la Apache License 2.0. Para más detalles, consulta la página de Licencia.

