Skip to main content
O SDK do Midaz para TypeScript ajuda você a criar integrações financeiras. Ele oferece uma interface tipada e fácil de usar para a plataforma de serviços financeiros do Midaz. O SDK funciona com Organizações, Ledgers, Contas, Transações e muito mais. Use-o para um workflow simples ou para operações complexas.

Por que usar o SDK do Midaz para TypeScript?

  • Segurança de tipos por design: suporte completo a TypeScript com definições de tipo precisas.
  • Padrão builder: interfaces fluentes e legíveis para construir objetos complexos.
  • Tratamento de erros: 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.
  • Novas tentativas automáticas: políticas de nova tentativa configuráveis para falhas transitórias.
  • Controles de concorrência: ferramentas integradas para executar tarefas em paralelo com throughput controlado.
  • Rápido com cache: cache em memória para melhor desempenho.
  • Validação estrita: detecte entradas inválidas cedo, com mensagens de erro claras.

Primeiros passos


Pré-requisito

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

Instalando o SDK

Instale o SDK do Midaz para TypeScript com um dos comandos a seguir:
Depois de instalá-lo, siga o Guia de início rápido para aprender a usar o SDK.

Autenticação


O SDK do Midaz para TypeScript se autentica pelo Access Manager da Lerian (OAuth). Para uma stack local com autenticação desabilitada, você pode criar um client sem ele. Você nunca chama uma factory createClient. Construa uma configuração com createClientConfigWithAccessManager() (ou createClientConfigBuilder() para uma stack local sem autenticação) e passe-a para new MidazClient(config).

Autenticação com o Access Manager

Para integrar com provedores de identidade externos via OAuth:
O Access Manager cuida dos tokens para você: aquisição, cache e renovação. Você não gerencia tokens manualmente.

Desenvolvimento local (sem autenticação)

Para uma stack local do Midaz com autenticação desabilitada, crie um client sem o Access Manager:
Oferecemos um plugin do Access Manager que você pode usar. Se quiser saber mais, fale conosco.

Guia de início rápido


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

Criar um client

O client é seu ponto de entrada principal para o SDK. Ele cuida da autenticação e dá acesso a todos os serviços de entidade. Exemplo:

Criar um Ativo

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

Criar uma Conta

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

Criar uma Transação

Crie transações com o padrão builder e createTransactionBuilder. Exemplo:
Neste código, você adiciona todas as propriedades com métodos with*.

Recuperação de erros

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

Limpar recursos

Usando o Access Manager para autenticação

Arquitetura do SDK


O SDK do Midaz usa uma arquitetura de serviços em múltiplas camadas. Ela tem três camadas, mostradas na Figura 1. Cada camada tem um propósito distinto.
  • Interface do client: este é o ponto de entrada principal para os usuários do SDK. Ela gerencia a configuração, como API keys e ambientes. Ela inicializa os serviços de forma lazy e expõe toda a funcionalidade do SDK.
  • Camada de serviços de entidade: esta camada reúne serviços específicos de domínio, como Contas, Ativos e Transações. Cada serviço oferece métodos consistentes: criar, obter, atualizar, excluir e listar. Cada serviço também adiciona operações especializadas para sua entidade.
  • Camada de serviços principais: todos os serviços de entidade usam esses utilitários fundamentais. Eles cuidam de requisições HTTP, validação de entrada, processamento de erros, observabilidade, configuração e cache.
Arquitetura em camadas do SDK do Midaz para TypeScript, com a interface do client sobre a camada de serviços de entidade sobre a camada compartilhada de serviços principais

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

A arquitetura do SDK enfatiza:
  • Consistência por meio de padrões compartilhados entre os serviços.
  • Escalabilidade via injeção de dependência e factories de serviço.
  • Confiabilidade por meio de tratamento de erros aprimorado e respostas tipadas.
  • Testabilidade com suporte para mocking, testes de integração e testes de contrato.
Para mais informações sobre a arquitetura, veja as páginas a seguir:

Padrão builder


O SDK do Midaz para TypeScript usa um padrão builder para ajudar você a montar objetos complexos de forma segura e adaptável. Em vez de um conjunto fixo de entradas, ele oferece uma interface passo a passo, fluente e encadeável. Funções builder no SDK:
  • Informam os parâmetros com antecedência.
  • Permitem definir campos opcionais com métodos .with*() e encadeá-los.
  • Evitam estados inválidos por meio de uma estrutura guiada.
  • Ocultam a complexidade interna para melhorar a legibilidade.

Exemplo

Você pode então passar esse assetInput para o método create correspondente no SDK.
Para mais informações, veja a página Padrão Builder no SDK do Midaz.

Trabalhando com entidades


Cada serviço de entidade cobre uma parte distinta do domínio financeiro, como contas, ativos ou transações. Esses serviços criam, recuperam, atualizam e excluem dados de cada tipo de entidade. Eles também oferecem funcionalidades especializadas para cada caso de uso. Você acessa cada serviço pelo client do SDK. Eles seguem uma estrutura consistente, o que facilita construir e manter funcionalidades financeiras.
Para mais informações, veja as páginas de entidades.

Usando utilitários


O SDK oferece módulos utilitários para operações comuns: desempenho, tratamento de erros, configuração e observabilidade.
Para mais informações, veja as páginas de utilitários.

Tratamento de erros


O SDK do Midaz para TypeScript ajuda você a tratar erros de forma clara e consistente. Quando ocorre um erro durante uma operação do SDK, o SDK lança um erro estruturado. O erro inclui campos importantes:
  • code: um identificador curto e consistente para o tipo de erro.
  • message: uma descrição legível para humanos.
  • statusCode: o código de status HTTP, quando disponível.
Trate um erro assim:

Códigos de erro comuns

Boas práticas

  • Valide a entrada antes de chamar métodos do SDK, para evitar invalid_input.
  • Verifique sua autenticação quando receber unauthorized ou forbidden.
  • Tente novamente em problemas transitórios como internal_error ou service_unavailable.
  • Use statusCode e message para mostrar informações de depuração nos logs de desenvolvimento.

Pipeline de CI/CD


Usamos o GitHub Actions para builds automatizados e prontos para produção:
  • Executa testes em várias versões do Node.js.
  • Aplica qualidade de código com ESLint e Prettier.
  • Mantém as dependências atualizadas com o Dependabot.
  • Cuida dos releases automaticamente com versionamento semântico.
  • Gera changelogs.

Quer contribuir?


Para contribuir com o SDK do Midaz para TypeScript, comece pelo nosso guia de contribuição no GitHub.

Licença


Este projeto está licenciado sob a Apache License 2.0. Para detalhes, veja a página Licença.