Skip to content

A04: cliente de API tipado, autenticação e tratamento de erros - #88

Merged
tecrodrigocastro merged 5 commits into
mainfrom
feat/a04-cliente-api-tipado
Nov 5, 2026
Merged

tecrodrigocastro merged 5 commits into
mainfrom
feat/a04-cliente-api-tipado

Conversation

@tecrodrigocastro

Copy link
Copy Markdown
Member

Resumo

  • openapi-typescript: npm run api:gen gera app/infrastructure/http/api-types.d.ts a partir de /docs/api.json do Scramble, commitado — pingService.ts consome operations['ping'] como referência de serviço tipado
  • HttpClientError ganha code e requestId (lidos do envelope {code, message, errors, request_id} do B04, com fallback pro header X-Request-Id)
  • 401 numa requisição que levava token chama httpClient.setUnauthorizedHandler() — registrado em auth.client.ts, limpa sessão e navega pro /login. 401 sem token (ex.: login errado) não dispara isso
  • useEdition() + editionStore: edição ativa do painel, hoje só em memória (sem API — Community ainda não existe)
  • Decisão de arquitetura: token continua Bearer no client (authStore/localStorage), não cookie httpOnly — docs/adr/0005-token-bearer-no-client.md justifica: o app mobile consome a mesma API com o mesmo token, cookie só existe no navegador

Test plan

  • npm run lint, npm run typecheck, npm test (135 testes) e npm run build passam
  • Teste cobre: parsing de code/request_id, fallback pro header, 401-com-token dispara o handler, 401-sem-token não dispara

@tecrodrigocastro
tecrodrigocastro merged commit 9c6cebf into main Nov 5, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant