fix(universities): usa snapshot do Censo INEP (provider api.universities.com.br saiu do ar) by lucianopf · Pull Request #897 · BrasilAPI/BrasilAPI · GitHub
Skip to content

fix(universities): usa snapshot do Censo INEP (provider api.universities.com.br saiu do ar) - #897

Open
lucianopf wants to merge 1 commit into
mainfrom
fix/universities-snapshot
Open

lucianopf wants to merge 1 commit into
mainfrom
fix/universities-snapshot

Conversation

@lucianopf

Copy link
Copy Markdown
Member

O endpoint /universities/v1 passou a retornar 500 porque a fonte original (api.universities.com.br) saiu do ar permanentemente — o domínio não resolve mais (NXDOMAIN), sem snapshot em arquivo web.\n\n## Solução: snapshot versionado (padrão da casa, como PIX/banks/hospitais)\n\n| Item | Detalhe |\n|---|---|\n| Fonte | Censo da Educação Superior (INEP/MEC), pública e gratuita • 100% alinhado à régua free do projeto |\n| Snapshot | services/universities/snapshots/latest.json — 2.574 IES, ~657KB, já no formato de resposta da rota |\n| Origem validada | id = CO_IES do INEP; CO_MUNICIPIO_IES = IBGE; endereço/CEP/bairro conferem com a UFMT do teste (id 1) |\n| Script | scripts/generate-universities-snapshot.js (npm run snapshot:universities) regenera a partir do CSV do INEP |\n| Service | lê do snapshot local (sem chamada externa) + erro tipado se lista vazia |\n\n## Compatibilidade\n- phone → null: o cadastro do INEP não tem telefone (provider enriquecia de fonte morta). Campo opcional na doc, compatível retroativo.\n- city normalizada em caixa alta com acento correto (CUIABÁ).\n- Contrato da rota mantido (id/full_name/name/ibge/city/uf/zipcode/street/number/neighborhood/phone), 404 inalterado.\n\n## Validação\n- vitest E2E tests/universities-v1.test.js → 4/4 ✓ (id 1 = UFMT, id inexistente → 404, lista > 2400, shape)\n- Teste unitário do service novo (tests/services/universities.test.js) → 5/5 ✓\n- ESLint 0 erros • paridade docs↔rotas 100% (87/87) • docs-spec-refs ✓\n\n## Ações manuais após merge\n1. Validar /universities/v1 em produção (deploy ~3min)\n2. Considerar workflow de snapshot agendado (como banks/pix) para manter o censo atualizado anualmente

…ies.com.br saiu do ar)

O provider original que servia o shape com endereço/IBGE/telefone
(api.universities.com.br) saiu do ar de forma permanente — o domínio
não resolve mais (NXDOMAIN), sem snapshot em arquivo web. O endpoint
/universities/v1 passou a retornar 500 (getaddrinfo EBUSY).

Fonte nova: Censo da Educação Superior (INEP/MEC), pública e gratuita,
versionada em services/universities/snapshots/latest.json (2574 IES,
~657KB) já no formato de resposta da rota. O telefone não consta no
cadastro do INEP → phone: null (campo opcional na doc, compatível
retroativo). City normalizada em caixa alta com acento correto
(CUIABÁ).

- service lê do snapshot local (padrão PIX), sem chamada externa
- script scripts/generate-universities-snapshot.js regenera a partir
  do CSV do INEP (npm run snapshot:universities)
- teste E2E atualizado para o comportamento real (id 1 = UFMT,
  id inexistente → 404, lista > 2400)
- teste unitário do service novo (padrão tests/services/)

Co-authored-by: Hermes Agent <noreply@nousresearch.com>
Ai-tool: hermes
Ai-model: deepseek-v4-flash
Ai-os: wsl
@vercel

vercel Bot commented Aug 19, 2026 •

Copy link
Copy Markdown

@sonarqubecloud

Copy link
Copy Markdown

This branch was successfully deployed

1 active deployment
Preview — d872cf6d Deployed Aug 19, 2026 by vercel[bot]
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