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: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:Desenvolvimento local (sem autenticação)
Para um stack local do Midaz com a autenticação desabilitada, construa um client sem o Access Manager: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 ecreateAssetBuilder.
Exemplo:
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 ecreateAccountBuilder.
Exemplo:
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 ecreateTransactionBuilder.
Exemplo:
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.
- 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.
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:assetInput para o método de criação correspondente no SDK.
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.
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.
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.
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
unauthorizedouforbidden. - Faça retry em problemas transitórios como
internal_errorouservice_unavailable. - Use
statusCodeemessagepara exibir informações de depuração nos logs de desenvolvimento.
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.

