ai-memory logo

Coleta app: cache, autenticação e conectividade no cliente HTTP

semantic concept Updated · History · Created

O cliente HTTP móvel centraliza a comunicação em WebConnectorImpl e coordena cache, autenticação, retries e operação offline:

  • O DioCacheInterceptor deve ser registrado antes do interceptor de autenticação/refresh. Um cache hit pode retornar antecipadamente; assim, o refresh de token só é acionado quando há cache miss real.
  • Respostas HTTP 304 Not Modified são válidas durante a revalidação de cache e não devem ser convertidas em exceções.
  • Retries devem ser limitados a falhas transitórias de conexão ou timeout e somente enquanto o serviço de conectividade indicar que há rede. Quando o dispositivo está offline, falhar imediatamente evita esperas e logs duplicados.
  • Requisições de escrita, como POST, não usam cache. Quando apropriado, o chamador deve persistir a operação na fila offline para sincronização posterior.
  • A URL base é mantida em ApiService; o conector atualiza sua baseUrl após verificar a disponibilidade do servidor, permitindo separar seleção de ambiente/fallback da execução das requisições.

Consequências

Essa separação reduz refreshes desnecessários, evita retries inúteis sem rede e mantém a lógica de cache, seleção de endpoint e fila offline previsível. Alterações de endpoint de produção devem ser feitas no ApiService, não em cada repositório ou chamada individual.