Pular para o conteúdo principal
O é uma ferramenta essencial para construir integrações financeiras com facilidade e confiança. Ele oferece uma interface amigável para desenvolvedores, totalmente tipada, que encapsula a plataforma de serviços financeiros do Midaz, permitindo que você se concentre na sua lógica de negócio em vez do código. Projetado para clareza e escalabilidade, o SDK permite que você trabalhe com Organizations, Ledgers, Accounts, Transactions e mais, seja criando um workflow simples ou gerenciando operações complexas. Em sua essência, o SDK é construído sobre uma arquitetura modular em camadas que prioriza desempenho, extensibilidade e uma excelente experiência de desenvolvimento.

Por que usar o Midaz SDK para TypeScript?

  • Type-safe por design: Construído com suporte completo a TypeScript e definições de tipos precisas.
  • Builder pattern: Interfaces fluentes e legíveis para ajudar você a construir objetos complexos com facilidade.
  • Tratamento de erros robusto: Estratégias de recuperação inteligentes e sinais de erro claros, para que você mantenha o controle.
  • Observabilidade incluída: Tracing, métricas e logs, prontos para uso.
  • Arquitetura em camadas: Separação clara entre client, entities, API e models. Organizado, previsível, escalável.
  • Retries automáticos: Lide com falhas transitórias com políticas de retry configuráveis.
  • Controles de concorrência: Ferramentas integradas para executar tarefas em paralelo sem perder o controle do throughput.
  • Rápido com caching: Cache em memória para melhorar o desempenho onde mais importa.
  • Validação rigorosa: Detecte inputs inválidos cedo com mensagens de erro claras e acionáveis.

Primeiros passos


Pré-requisito

  • O Midaz SDK para TypeScript requer TypeScript v5.8 ou posterior.

Instalando o SDK

Para começar a usar o Midaz SDK para TypeScript, você deve instalar as dependências usando o seguinte comando:
Uma vez instalado, siga os exemplos na seção Guia de início rápido para aprender como usar o Midaz SDK para TypeScript.

Autenticação


O Midaz SDK para TypeScript se autentica através do Access Manager da Lerian (OAuth). Para um stack local que roda com a autenticação desabilitada, você pode construir um client sem ele. Você nunca chama uma função createClient — construa uma configuração com createClientConfigWithAccessManager() (ou createClientConfigBuilder() para um stack local sem autenticação) e passe-a para new MidazClient(config).

Autenticação com Access Manager

Para integração com provedores de identidade externos usando OAuth:
O Access Manager cuida do gerenciamento de tokens para você, como aquisição, caching e renovação, para que você não precise se preocupar em gerenciar tokens manualmente.

Desenvolvimento local (sem autenticação)

Para um stack local do Midaz que roda com a autenticação desabilitada, construa um client sem o Access Manager:
Oferecemos um plugin Access Manager que você pode usar. Se quiser saber mais sobre ele, entre em contato.

Guia de início rápido


Nas seções a seguir, você encontrará exemplos práticos de código para ajudar a entender como usar o Midaz SDK para TypeScript.

Crie um client

Este é o primeiro, e possivelmente mais importante, passo. O client é seu ponto de entrada principal para o SDK. Ele lida com autenticação e dá acesso a todos os serviços de entidades. Exemplo:

Crie um Asset

A melhor forma de criar assets é com o Builder Pattern usando createAssetBuilder. Exemplo:
Neste código, você adiciona os campos obrigatórios name e assetCode ao builder const assetInput = createAssetBuilder('US Dollar', 'USD'), e então adiciona quaisquer propriedades adicionais com métodos with*.

Crie uma Account

A forma mais fácil de criar contas é com o Builder Pattern usando createAccountBuilder. Exemplo:
Neste código, você adiciona os campos obrigatórios name e assetCode ao builder const accountInput = createAccountBuilder('Savings Account', 'USD'), e então adiciona quaisquer propriedades adicionais com métodos with*.

Crie uma Transaction

A forma mais fácil de criar transações é com o Builder Pattern usando createTransactionBuilder. Exemplo:
Neste código, você adiciona todas as propriedades com métodos with*.

Recuperação de erros

Use a recuperação aprimorada de erros para operações críticas

Limpar recursos

Usando Access Manager para autenticação

Arquitetura do SDK


O Midaz SDK usa uma arquitetura de serviços em múltiplas camadas para fornecer uma experiência de desenvolvimento limpa, modular e escalável. Ele é organizado em três camadas principais, como mostrado na Figura 1, cada uma servindo a um propósito distinto.
  • Interface do Client: Este é o ponto de entrada principal para os usuários do SDK. Ele gerencia configurações como API keys e ambientes, inicializa serviços de forma lazy e expõe toda a funcionalidade disponível de maneira unificada e descobrível.
  • Camada de Entity Services: Esta camada contém serviços específicos de domínio (ex.: Accounts, Assets e Transactions) e oferece métodos consistentes para operações como create, get, update, delete e list. Além disso, operações especializadas são incluídas com base nas necessidades específicas de cada entidade.
  • Camada de Core Services: Esses utilitários fundamentais são usados por todos os entity services. Eles lidam com requisições HTTP, validação de input, processamento de erros, observabilidade, configuração e caching.
Arquitetura em camadas do SDK do Midaz para TypeScript, com a interface de cliente sobre a camada de serviços de entidade e esta sobre a camada de serviços centrais compartilhados

Figura 1. A arquitetura em camadas do Midaz SDK para TypeScript.

A arquitetura do SDK enfatiza:
  • Consistência através de padrões compartilhados entre serviços.
  • Escalabilidade via injeção de dependência e factories de serviços.
  • Confiabilidade através de tratamento aprimorado de erros e respostas tipadas.
  • Testabilidade com suporte para mocking, integração e testes de contrato.
Quer se aprofundar? Confira as seguintes páginas para mais informações sobre a arquitetura:

Builder pattern


O Midaz SDK para TypeScript emprega um design pattern builder para ajudar você a montar objetos avançados de forma direta, segura e adaptável. Em vez de pré-definir um conjunto de inputs, ele fornece uma interface fluente, encadeável e passo a passo que guia você por todo o processo. Funções builder no SDK:
  • Ajudam informando os parâmetros antecipadamente.
  • Permitem modificar campos opcionais usando métodos .with*() e encadeá-los.
  • Ajudam a evitar estados inválidos através de uma estrutura guiada.
  • Ocultam complexidade interna, resultando em melhor legibilidade.

Exemplo

Aqui vai um exemplo rápido:
Você pode então passar esse assetInput para o método de criação correspondente no SDK.
Quer se aprofundar? Confira a página Builder Pattern no Midaz SDK para mais informações.

Trabalhando com entidades


Cada entity service foca em aspectos distintos do domínio financeiro, como contas, assets ou transações. Esses serviços fornecem um método confiável para criar, recuperar, atualizar e excluir dados, permitindo interações significativas com cada tipo de entidade. Além disso, oferecem funcionalidades especializadas projetadas para seus casos de uso específicos, permitindo que você lide com dados financeiros com maior confiança e eficiência. Você pode acessar cada um desses serviços através do client do SDK. Eles seguem uma estrutura consistente, facilitando a construção e manutenção de funcionalidades financeiras.
Quer se aprofundar? Confira as páginas de Entidades para mais informações.

Usando utilitários


O SDK fornece um conjunto de módulos utilitários para simplificar operações comuns, seja otimizando desempenho, tratando erros, gerenciando configurações ou melhorando a observabilidade. Essas ferramentas são projetadas para funcionar perfeitamente com o resto do SDK e ajudar você a construir aplicações financeiras robustas com menos esforço.
Quer se aprofundar? Confira as páginas de Utilitários para mais informações.

Tratamento de erros


O Midaz SDK para TypeScript ajuda você a tratar erros de forma clara e consistente. Quando um erro ocorre durante uma operação do SDK, um erro estruturado é lançado. Este erro inclui campos chave para ajudar você a entender e resolver o problema:
  • code: Um identificador curto e consistente para o tipo de erro.
  • message: Uma descrição legível.
  • details: (Opcional) Contexto ou metadados adicionais.
  • status: O código de status HTTP, quando disponível.
Veja como você pode tratar um erro:

Códigos de erro comuns

Boas práticas

  • Valide o input antes de chamar métodos do SDK para evitar invalid_input.
  • Verifique a autenticação ao enfrentar unauthorized ou forbidden.
  • Faça retry em problemas transitórios como internal_error ou service_unavailable.
  • Use details para exibir informações úteis de depuração nos logs de desenvolvimento.
O SDK é construído para manter erros previsíveis e acionáveis, para que você possa focar em construir, não em depurar.
DicaQuer se aprofundar? Confira as seguintes páginas para mais informações:

Pipeline CI/CD


Usamos GitHub Actions para manter tudo fluido, automatizado e pronto para produção:
  • Executa testes em múltiplas versões do Node.js.
  • Aplica qualidade de código com ESLint e Prettier.
  • Mantém dependências atualizadas com Dependabot.
  • Lida com releases automaticamente usando versionamento semântico.
  • Gera changelogs para total transparência.

Quer contribuir?


Se você está pensando em contribuir com o Midaz SDK para TypeScript, comece com nosso guia de contribuição no GitHub. Ele cobre tudo que você precisa saber para começar.

Licença


Este projeto é licenciado sob a Elastic License 2.0. Para detalhes, confira a página de Licença.