feat (cep v3): Criação de uma rota de consulta de cep com autocomplete de faixas de cep#549
feat (cep v3): Criação de uma rota de consulta de cep com autocomplete de faixas de cep#549vinimrs wants to merge 1 commit intoBrasilAPI:mainfrom
Conversation
…omplete de faixas de cep Baseado em um arquivo .csv, contendo todas as cidades do Brasil, e um determinada ‘range’ de CEP’s, foi implementado um sistema de “autocomplete”, ou seja, ao ser fornecido um CEP incompleto, a API fornece uma lista de possíveis cidades que iniciam com os dígitos fornecidos ou se encontram em uma determinada faixa de CEP. BrasilAPI#264
|
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
|
Kudos, SonarCloud Quality Gate passed! |
|
Olá @vinimrs, a ideia de autocomplete de CEPs é interessante! Mas o PR precisa de uma refatoração significativa antes do merge. Bloqueadores: 1. O PR foi criado a partir de um fork antigo. O 2. Handler não usa o padrão do projeto // ❌ atual
export default cors(Cep);
// ✅ correto
export default app().get(action);O 3. Sem classes de erro do projeto // ❌ atual
response.status(400); return response.json(error);
// ✅ correto
throw new BadRequestError({ message: '...' });Deixe o 4. CSV lido do disco em cada requisição const json = await csvToJson().fromFile(csvFilePath); // leitura em toda request!Em serverless, isso é lento e não compartilha cache entre invocações. Considere importar o CSV como módulo no topo do arquivo (ou usar 5. Lógica de bloqueio de IP no handler const tempBlockedIps = [];
const tempBlockedUserAgents = ['Go-http-client/2.0'];Regras de bloqueio não pertencem a um handler específico. O firewall middleware ( 6. Testes com sintaxe CommonJS e sem imports do Vitest // ❌
const axios = require('axios');
// ✅
import axios from 'axios';
import { describe, test, expect } from 'vitest';7. Testes com ordem de resultados hardcoded expect(response.data[0]).toEqual({ state: 'SP', city: 'São Paulo', ... });
expect(response.data[1]).toEqual({ state: 'PR', city: 'Alto Paraná', ... });A ordem dos resultados de autocomplete não é garantida. Prefira 8. ESLint Não desabilite regras ESLint project-wide para um endpoint específico. Ajuste o código para respeitar a regra. O conceito da feature é válido. Com as correções estruturais acima, pode ser um endpoint útil. Recomendo rebase do fork com main antes de refatorar. |








Cep V3, sugestões de zonas de CEP baseados em prefixos com consulta natural em casos completos.
Baseado em um arquivo .csv, contendo todas as cidades do Brasil, e um determinada ‘range’ de CEP’s, foi implementado um sistema de “autocomplete”, ou seja, ao ser fornecido um CEP incompleto, a API fornece uma lista de possíveis cidades que iniciam com os dígitos fornecidos ou se encontram em uma determinada faixa de CEP.
#264