Skip to content

docs: reorganizar o menu de documentação da API com grupos semânticos#795

Open
felipeflfranca wants to merge 1 commit intoBrasilAPI:mainfrom
felipeflfranca:feat/reorganize-docs-menu
Open

docs: reorganizar o menu de documentação da API com grupos semânticos#795
felipeflfranca wants to merge 1 commit intoBrasilAPI:mainfrom
felipeflfranca:feat/reorganize-docs-menu

Conversation

@felipeflfranca
Copy link
Copy Markdown
Contributor

@felipeflfranca felipeflfranca commented Apr 15, 2026

📋 Descrição

Agrupa todos os endpoints em categorias semânticas usando a extensão x-tagGroups do ReDoc, substituindo a lista alfabética plana de 20+ tags por uma barra lateral estruturada:

  • Empresarial: CNPJ, NCM, Registro.br
  • Financeiro: Banks, Câmbio, Corretoras, FIPE, Fundos de investimento, PIX, Taxas, Tickers
  • Geográfico: CEP, CEP V2, CPTEC, DDD, IBGE
  • Geral: Feriados Nacionais, ISBN
  • Saúde: TUSS
  • Termos de uso (mantido em primeiro, conforme convenção já existente)

Grupos e itens ordenados alfabeticamente dentro de cada categoria.

Também reorganiza a seção "Recursos disponíveis" na descrição da API por categoria, adiciona o item ausente "Fundos de investimento" e normaliza nomes ("Tabela FIPE" → "FIPE", "Registros de domínio br" → "Registro.br").

O getJsonDoc.js foi atualizado para extrair e atribuir x-tagGroups de forma explícita, evitando problemas de merge de arrays do lodash quando múltiplos arquivos JSON são combinados.

Nenhum endpoint foi alterado — totalmente compatível com versões anteriores.

🎯 Tipo de Mudança

  • 🐛 Correção de bug (mudança que corrige um problema)
  • ✨ Nova funcionalidade (mudança que adiciona funcionalidade)
  • 💥 Breaking change (correção ou funcionalidade que causa quebra de compatibilidade)
  • 📝 Documentação (mudanças apenas em documentação)
  • ♻️ Refatoração (mudança que não corrige bug nem adiciona funcionalidade)
  • ⚡ Performance (mudança que melhora performance)
  • ✅ Testes (adiciona ou corrige testes)
  • 🔧 Configuração (mudanças em configuração ou build)

⚠️ Checklist de Compatibilidade (CRÍTICO)

  • ✅ Não remove campos de respostas de API existentes
  • ✅ Não renomeia campos de respostas de API existentes
  • ✅ Não muda tipos de dados de campos existentes (string → number, etc.)
  • ✅ Não muda o formato de URLs de endpoints existentes
  • ✅ Não muda códigos de status HTTP de endpoints existentes
  • ✅ Se fez mudanças incompatíveis, criei uma nova versão (v2, v3, etc.)

📚 Checklist de Documentação

  • ✅ Atualizei ou criei documentação OpenAPI em /pages/docs/doc/
  • ✅ Documentação inclui exemplos de requisição e resposta
  • ✅ Documentação está em português
  • ✅ Atualizei README.md se necessário
  • ✅ N/A - Mudanças não requerem documentação

🧪 Checklist de Testes

  • ✅ Criei ou atualizei testes E2E
  • ✅ Todos os testes passam localmente (npm test)
  • ✅ Teste de CORS funciona corretamente
  • ✅ Testei casos de erro (404, 400, 500, etc.)
  • ✅ Testei casos de sucesso
  • ✅ N/A - Mudanças não requerem testes

💻 Checklist de Código

  • ✅ Código segue os padrões do projeto (ESLint + Prettier)
  • ✅ Executei npm run fix antes de commitar
  • ✅ Não adicionei dependências desnecessárias ou pesadas
  • ✅ Código não expõe credenciais ou informações sensíveis
  • ✅ Validei todos os inputs de usuário
  • ✅ Tratei erros apropriadamente
  • ✅ Usei Conventional Commits

🚀 Checklist de Performance e Custos

  • ✅ Não adicionei processamento pesado que aumenta custos
  • ✅ Usei cache quando apropriado
  • ✅ Minimizei chamadas a APIs externas
  • ✅ Considerei impacto em rate limits de APIs externas
  • ✅ Testei performance em casos de alto volume

🔍 Como Testar

  1. Clonar o repositório e rodar npm install && npm run dev
  2. Acessar http://localhost:3000/docs
  3. Verificar que o menu lateral exibe os grupos: Termos de uso, Empresarial, Financeiro, Geográfico, Geral, Saúde
  4. Verificar que todos os endpoints continuam acessíveis dentro dos seus respectivos grupos
  5. Verificar que a seção "Recursos disponíveis" na descrição da API exibe os itens organizados por categoria

📝 Notas Adicionais

A extensão x-tagGroups é suportada nativamente pelo ReDoc, já utilizado no projeto. Não há novas dependências. A mudança é puramente de organização visual da documentação — nenhum endpoint, campo ou comportamento de API foi alterado.

Groups all endpoints into semantic categories using ReDoc's x-tagGroups
extension, replacing the flat alphabetical list of 20+ tags with a
structured sidebar:

- Empresarial: CNPJ, NCM, Registro.br
- Financeiro: Banks, Câmbio, Corretoras, FIPE, Fundos, PIX, Taxas, Tickers
- Geográfico: CEP, CEP V2, CPTEC, DDD, IBGE
- Geral: Feriados Nacionais, ISBN
- Saúde: TUSS
- Termos de uso (kept first per existing convention)

Groups and items sorted alphabetically within each category.

Also reorganizes the "Recursos disponíveis" section in the API
description by category, adds missing "Fundos de investimento",
and normalizes names ("Tabela FIPE" → "FIPE", "Registros de
domínio br" → "Registro.br").

getJsonDoc.js updated to extract and assign x-tagGroups explicitly,
avoiding lodash array merge issues with arrays across multiple files.

No endpoints were changed — fully backward compatible.
@vercel
Copy link
Copy Markdown

vercel bot commented Apr 15, 2026

@felipeflfranca is attempting to deploy a commit to the BrasilAPI Team on Vercel.

A member of the Team first needs to authorize it.

@sonarqubecloud
Copy link
Copy Markdown

Copy link
Copy Markdown
Member

@lucianopf lucianopf left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Boa contribuição! A reorganização do menu usando x-tagGroups é a abordagem idiomática do ReDoc e resolve bem o problema de navegabilidade com 20+ endpoints em lista plana.

Verifiquei todos os nomes de tags nos x-tagGroups contra os arquivos JSON individuais — todas as 20 tags batem corretamente. O fix em services/getJsonDoc.js para extrair x-tagGroups antes do lodash.merge também está correto e evita um potencial bug de duplicação de arrays.

Nenhum endpoint ou contrato de API foi alterado. Aprovado! ✅

@daccorrea
Copy link
Copy Markdown

Teve alguma função da API FIPE que tenha mudado, reparei que parou de contultar

@felipeflfranca
Copy link
Copy Markdown
Contributor Author

Oi @daccorrea ! Investiguei isso hoje e a API da FIPE (veiculos.fipe.org.br/api) está funcional — os endpoints de /fipe/marcas, /fipe/preco e /fipe/veiculos estão respondendo normalmente em produção.

O que acontece é que a API da FIPE tem instabilidade intermitente (retorna 403 ou 500 esporadicamente). Quando testei mais cedo hoje ela estava fora, mas agora voltou a responder.

Você consegue dar mais detalhes? Qual endpoint específico está falhando pra você e qual erro está recebendo? Assim consigo investigar melhor se é algo pontual ou se mudou alguma coisa na API deles.

@daccorrea
Copy link
Copy Markdown

Oi @daccorrea ! Investiguei isso hoje e a API da FIPE () está funcional — os endpoints de , e estão respondendo normalmente em produção.veiculos.fipe.org.br/api``/fipe/marcas``/fipe/preco``/fipe/veiculos

O que acontece é que a API da FIPE tem instabilidade intermitente (retorna 403 ou 500 esporadicamente). Quando testei mais cedo hoje ela estava fora, mas agora voltou a responder.

Você consegue dar mais detalhes? Qual endpoint específico está falhando pra você e qual erro está recebendo? Assim consigo investigar melhor se é algo pontual ou se mudou alguma coisa na API deles.

muito obrigado pelo retorno eu estou usando o endpoint: https://brasilapi.com.br/api/fipe/preco/v1/001004-9 estou fazendo um mapeamento para identificar a quantidade de litros de um carro. com essa api da fipe consegui avançar um pouco mas acho que vou ter que recorrer a outra pois não tem as especificações técnicas do veículo.

de toda forma eu acabei de consultar de novo e o resultado veio sem problema, estou usando o postman para fazer esses testes.

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.

5 participants