¿Por qué usar el SDK de Midaz para TypeScript?
- Seguridad de tipos por diseño: Construido con soporte completo de TypeScript y definiciones de tipos precisas.
- Patrón de constructor: Interfaces fluidas y legibles para ayudarle a construir objetos complejos con facilidad.
- Manejo robusto de errores: Estrategias inteligentes de recuperación y señales de error claras, para que mantenga el control.
- Observabilidad incluida: Rastreo, métricas y registros, listos desde el primer momento.
- Arquitectura en capas: Separación limpia entre cliente, entidades, API y modelos. Organizado, predecible, escalable.
- Reintentos automáticos: Maneje contratiempos transitorios con políticas de reintento configurables.
- Controles de concurrencia: Herramientas integradas para ejecutar tareas en paralelo, sin perder el control del rendimiento.
- Rápido con caché: Caché en memoria para aumentar el rendimiento donde cuenta.
- Validación estricta: Detecte entrada inválida temprano con mensajes de error claros y accionables.
Comenzando
Prerrequisito
- El SDK de Midaz para TypeScript requiere TypeScript v5.8 o posterior.
Instalación del SDK
Para comenzar a usar el SDK de Midaz para TypeScript, debe instalar las dependencias usando el siguiente comando:Autenticación
El SDK de Midaz para TypeScript le brinda flexibilidad cuando se trata de autenticación. Puede elegir el método que se ajuste a su configuración:
Clave API
Puede usar un método de autenticación simple agregando una Clave API.Autenticación con Access Manager
Para integración con proveedores de identidad externos usando OAuth:Ofrecemos un plugin de Access Manager que puede usar. Si desea saber más al respecto, contáctenos.
Guía de inicio rápido
En las siguientes secciones, encontrará ejemplos de código prácticos para ayudarle a entender cómo usar el SDK de Midaz para TypeScript.
Crear un cliente
Este es el primer, y posiblemente más importante, paso. El cliente es su punto de entrada principal al SDK. Maneja la autenticación y le da acceso a todos los servicios de entidades. Ejemplo:Crear un Activo
La mejor manera de crear activos es con el Patrón de Constructor usandocreateAssetBuilder
.
Ejemplo:
name
y assetCode
al constructor const assetInput = createAssetBuilder('US Dollar', 'USD')
, luego agregará cualquier propiedad adicional con los métodos with*
.
Crear una Cuenta
La forma más fácil de crear cuentas es con el Patrón de Constructor usandocreateAccountBuilder
.
Ejemplo:
name
y assetCode
al constructor const accountInput = createAccountBuilder('Savings Account', 'USD')
, luego agregará cualquier propiedad adicional con los métodos with*
.
Crear una Transacción
La forma más fácil de crear cuentas es con el Patrón de Constructor usandocreateTransactionBuilder
.
Ejemplo:
with*
.
Recuperación de errores
Use recuperación de errores mejorada para operaciones críticasLimpiar recursos
Usar Access Manager para autenticación
Arquitectura del SDK
El SDK de Midaz usa una arquitectura de servicios de múltiples capas para proporcionar una experiencia de desarrollador limpia, modular y escalable. Está organizado en tres capas clave, como se muestra en la Figura 1, cada una sirviendo un propósito distinto.
- Interfaz del cliente: Este es el punto de entrada principal para los usuarios del SDK. Gestiona configuraciones como claves API y entornos, inicializa servicios de manera perezosa y expone toda la funcionalidad disponible de manera unificada y descubrible.
- Capa de servicios de entidades: Esta capa contiene servicios específicos de dominio (por ejemplo, Cuentas, Activos y Transacciones) y ofrece métodos consistentes para operaciones como crear, obtener, actualizar, eliminar y listar. Además, se incluyen operaciones especializadas basadas en las necesidades específicas de cada entidad.
- Capa de servicios centrales: Estas utilidades fundamentales son utilizadas por todos los servicios de entidades. 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.
¿Quiere profundizar más? Consulte las siguientes páginas para más información sobre la Arquitectura:
Patrón de constructor
El SDK de Midaz para TypeScript emplea un patrón de diseño de constructor para ayudarle a ensamblar objetos avanzados de manera directa, segura y adaptable. En lugar de predefinir un conjunto de entradas, proporciona una interfaz fluida, paso a paso y encadenable que lo guía a través de todo el proceso. Funciones de constructor en el SDK:
- Lo asisten informándole de los parámetros por adelantado.
- Le permiten modificar campos opcionales usando métodos
.with*()
y encadenarlos. - Ayudan a evitar estados inválidos a través de una estructura guiada.
- Ocultan la complejidad interna, lo que conduce a una mejor legibilidad.
Ejemplo
Aquí hay un ejemplo rápido:assetInput
al método de creación correspondiente en el SDK.
¿Quiere profundizar más? Consulte la página Patrón de Constructor en el SDK de Midaz para más información.
Trabajando con entidades
Cada servicio de entidad se concentra en aspectos distintos del dominio financiero, como cuentas, activos o transacciones. Estos servicios proporcionan un método confiable para crear, recuperar, actualizar y eliminar datos mientras permiten interacciones significativas con cada tipo de entidad. Además, ofrecen características especializadas diseñadas para su caso de uso particular, permitiéndole manejar datos financieros con mayor confianza y eficiencia.
Entidad | Descripción |
---|---|
Organizaciones | Gestionar unidades de negocio y datos organizacionales. |
Ledgers | Estructurar y gestionar registros financieros. |
Activos | Trabajar con activos como monedas, commodities y otras unidades de valor. |
Cuentas | Crear, recuperar, actualizar y eliminar cuentas dentro de un Libro Contable. |
Segmentos | Organizar portafolios para análisis e informes. |
Portafolios | Agrupar cuentas y activos en colecciones financieras significativas. |
Saldos | Recuperar y calcular saldos de activos para cuentas. |
Tasas de Activos | Manejar tasas de cambio entre diferentes tipos de activos. |
Transacciones | Crear y gestionar transacciones que mueven activos entre cuentas. |
Operaciones | Gestionar débitos y créditos atómicos que conforman una transacción. |
¿Quiere profundizar más? Consulte las páginas de Entidades para más información.
Uso de utilidades
El SDK proporciona un conjunto de módulos de utilidad para optimizar operaciones comunes, ya sea que esté optimizando el rendimiento, manejando errores, gestionando configuraciones o mejorando la observabilidad. Estas herramientas están diseñadas para trabajar sin problemas con el resto del SDK y le ayudan a construir aplicaciones financieras robustas con menos esfuerzo.
Utilidad | Descripción |
---|---|
Ayudantes de Cuenta | Simplifica la lógica y transformaciones comunes relacionadas con cuentas. |
Caché | Habilita almacenamiento en caché ligero para un mejor rendimiento en tiempo de ejecución. |
Concurrencia | Ayuda a coordinar y limitar tareas concurrentes de manera segura y eficiente. |
Configuración | Configuración y acceso centralizados. |
Datos | Asiste con formateo de datos y tareas de paginación. |
Manejo de Errores | Ofrece estrategias de recuperación y mecanismos de procesamiento de errores. |
Cliente HTTP | Proporciona una interfaz HTTP de bajo nivel para llamadas API directas. |
Red | Agrega características de red de alto nivel como reintentos y retroceso. |
Observabilidad | Captura trazas, métricas y registros para soportar monitoreo y depuración. |
Paginación | Maneja respuestas paginadas con ayudantes predecibles y consistentes. |
Validación | Valida datos de entrada y salida para ayudar a mantener la integridad de datos. |
¿Quiere profundizar más? Consulte las páginas de Utilidades para más información.
Manejo de errores
El SDK de Midaz para TypeScript le ayuda a manejar errores de manera clara y consistente. Cuando ocurre un error durante una operación del SDK, se lanza un error estructurado. Este error incluye campos clave para ayudarle a entender y resolver el problema:
code
: Un identificador corto y consistente para el tipo de error.message
: Una descripción legible por humanos.details
: (Opcional) Contexto adicional o metadatos.status
: El código de estado HTTP, cuando esté disponible.
Códigos de error comunes
Código | Descripción | Estado HTTP |
---|---|---|
invalid_input | Su solicitud falta datos requeridos o tiene valores inválidos. | 400 |
unauthorized | La autenticación falló o faltan credenciales. | 401 |
forbidden | No tiene permiso para realizar esta acción. | 403 |
not_found | El recurso al que intenta acceder no existe. | 404 |
conflict | La operación entra en conflicto con un recurso existente. | 409 |
internal_error | Algo salió mal de nuestro lado. | 500 |
service_unavailable | Interrupción temporal—intente de nuevo más tarde. | 503 |
Mejores prácticas
- Valide la entrada antes de llamar a los métodos del SDK para evitar
invalid_input
. - Verifique dos veces la autenticación cuando enfrente
unauthorized
oforbidden
. - Reintente en problemas transitorios como
internal_error
oservice_unavailable
. - Use
details
para mostrar información de depuración útil en registros de desarrollo.
Consejo¿Quiere profundizar más? Consulte las siguientes páginas para más información:
Pipeline de CI/CD
Usamos GitHub Actions para mantener las cosas fluidas, automatizadas y listas 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 usando versionado semántico.
- Genera registros de cambios para total transparencia.
¿Quiere contribuir?
Si está pensando en contribuir al SDK de Midaz para TypeScript, comience con nuestra guía de contribución en GitHub. Cubre todo lo que necesita saber para comenzar.
Licencia
Este proyecto está licenciado bajo Apache 2.0. Para más detalles, consulte la página de Licencia.