Skip to main content
O Midaz SDK para TypeScript ajuda você a construir integrações financeiras. Ele oferece uma interface tipada e amigável para desenvolvedores sobre a plataforma de serviços financeiros do Midaz. Você foca na sua lógica de negócio, não no código de transporte. O SDK trabalha com Organizations, Ledgers, Accounts, Transactions e mais. Use-o para um workflow simples ou para operações complexas. Uma arquitetura modular em camadas suporta desempenho, extensibilidade e a experiência de desenvolvimento.

Por que usar o Midaz SDK para TypeScript?

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

Primeiros passos


Pré-requisito

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

Instalando o SDK

Instale o Midaz SDK para TypeScript com um dos seguintes comandos:
Depois de instalar, siga o Guia de início rápido para aprender a usar o SDK.

Autenticação


O Midaz SDK para TypeScript se autentica através do Access Manager da Lerian (OAuth). Para um stack local 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 integrar com provedores de identidade externos via OAuth:
O Access Manager cuida dos tokens para você: aquisição, caching e renovação. Você não gerencia tokens manualmente.

Desenvolvimento local (sem autenticação)

Para um stack local do Midaz 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


As seções a seguir dão exemplos práticos de código para o Midaz SDK para TypeScript.

Crie um client

Este é o primeiro 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

Crie assets com o builder pattern e createAssetBuilder. Exemplo:
Neste código, você adiciona os campos obrigatórios name e assetCode ao builder const assetInput = createAssetBuilder('US Dollar', 'USD'). Depois você adiciona quaisquer outras propriedades com métodos with*.

Crie uma Account

Crie contas com o builder pattern e createAccountBuilder. Exemplo:
Neste código, você adiciona os campos obrigatórios name e assetCode ao builder const accountInput = createAccountBuilder('Savings Account', 'USD'). Depois você adiciona quaisquer outras propriedades com métodos with*.

Crie uma Transaction

Crie transações com o builder pattern e 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 uma experiência de desenvolvimento limpa, modular e escalável. Ele tem três camadas, mostradas na Figura 1. Cada camada serve a um propósito distinto.
  • Interface do Client: Este é o ponto de entrada principal para os usuários do SDK. Ele gerencia a configuração como API keys e ambientes. Ele inicializa serviços de forma lazy e expõe toda a funcionalidade do SDK.
  • Camada de Entity Services: Esta camada contém serviços específicos de domínio, como Accounts, Assets e Transactions. Cada serviço oferece métodos consistentes: create, get, update, delete e list. Cada serviço também adiciona operações especializadas para sua entidade.
  • Camada de Core Services: Todos os entity services usam esses utilitários fundamentais. Eles lidam com requisições HTTP, validação de input, processamento de erros, observabilidade, configuração e caching.

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 usa um builder pattern para ajudar você a montar objetos complexos de forma segura e adaptável. Em vez de um conjunto fixo de inputs, ele fornece uma interface fluente, encadeável e passo a passo. Funções builder no SDK:
  • Informam os parâmetros antecipadamente.
  • Permitem definir campos opcionais com métodos .with*() e encadeá-los.
  • Evitam estados inválidos através de uma estrutura guiada.
  • Ocultam complexidade interna para 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 cobre uma parte distinta do domínio financeiro, como contas, assets ou transações. Esses serviços criam, recuperam, atualizam e excluem dados para cada tipo de entidade. Eles também oferecem funcionalidades especializadas para cada caso de uso, para que você lide com dados financeiros com confiança. Você acessa cada serviço através do client do SDK. Eles seguem uma estrutura consistente, para que você construa e mantenha funcionalidades financeiras mais facilmente.
Quer se aprofundar? Confira as páginas de Entidades para mais informações.

Usando utilitários


O SDK fornece módulos utilitários para operações comuns: desempenho, tratamento de erros, configuração e observabilidade. Essas ferramentas funcionam com o resto do SDK e ajudam você a construir aplicações financeiras 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, o SDK lança um erro estruturado. O erro inclui campos chave:
  • code: Um identificador curto e consistente para o tipo de erro.
  • message: Uma descrição legível.
  • statusCode: O código de status HTTP, quando disponível.
Trate um erro assim:

Códigos de erro comuns

Boas práticas

  • Valide o input antes de chamar métodos do SDK, para evitar invalid_input.
  • Verifique sua autenticação ao obter unauthorized ou forbidden.
  • Faça retry em problemas transitórios como internal_error ou service_unavailable.
  • Use statusCode e message para exibir informações de depuração nos logs de desenvolvimento.
O SDK mantém erros previsíveis e acionáveis.
DicaQuer se aprofundar? Confira as seguintes páginas para mais informações:

Pipeline CI/CD


Usamos GitHub Actions para builds automatizados e prontos 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 com versionamento semântico.
  • Gera changelogs.

Quer contribuir?


Para contribuir com o Midaz SDK para TypeScript, comece com nosso guia de contribuição no GitHub. Ele cobre o que você precisa para começar.

Licença


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