JavaScriptMódulos e Errosdesafio

SDK modular

Ao integrar APIs em aplicações reais, você raramente fará chamadas soltas: precisa de autenticação consistente, tratamento de erros padronizado e lógica de retry para falhas de rede. Organizar tudo em um SDK modular com módulos separados (usuários, produtos) e erros customizados permite reutilizar essa infraestrutura sem duplicar código. É o padrão usado por bibliotecas como axios e SDKs oficiais de serviços cloud.

O PROBLEMA

SDK para API fictícia com autenticação, usuários, produtos. Erros customizados e retry.

EXEMPLO

const api = criarSDK({baseUrl:"https://api.exemplo.com", token:"xxx"});
const usuario = await api.usuarios.buscar(1);

SOBRE O CONCEITO

A arquitetura modular usa export e import para dividir responsabilidades: cada módulo (ex.: usuarios.js) exporta funções que acessam endpoints específicos, enquanto um módulo central (sdk.js) gerencia autenticação e lógica de retry. Erros customizados com class extends Error permitem capturar falhas de forma específica (ex.: AutenticacaoError), diferenciando de erros genéricos. O erro comum de não reutilizar lógica de retry ocorre quando cada módulo implementa seu próprio loop de tentativas, gerando duplicação e inconsistência — por exemplo, um módulo pode tentar 3 vezes e outro 5, com intervalos diferentes. A solução é centralizar o retry em uma função requisicaoComRetry que recebe a chamada original e aplica tentativas uniformes, usando async/await e try/catch com Promise para controlar atrasos.

RESOLUÇÃO

Mais exercícios de Módulos e Erros

JSM003 · BásicoTipos de erroJSM005 · BásicoError propertiesJSM006 · BásicoExport nomeadoJSM008 · BásicoImport * as
Ver todos os exercícios de JavaScript