chinnonsantos/sql-paises-estados-cidades

Tabela de endereço com base nos CEPs

leandrogabrielcunha opened this issue · 3 comments

Bom dia pessoal, não sei se aqui é o lugar certo para esta pergunta, preciso criar uma API de consulta de endereços com base no CEP!

Hoje utilizo API de terceiros porem não me atende mais por conta do response time!

Em primeiro lugar gostaria de parabenizar a todos por disonibilizar este SQL :), agora minha duvida é como vocês já estão mais familizado ao assunto como que eu consigo um sql com os endereços?

Boa tarde, Leandro.
Vão existir algumas bases SQL com os nomes de ruas sim, mas minha sugestão pessoal é que use uma API para essa função que descreveu. Ao contrário de cidades, ruas constantemente mudam de nome, novas são criadas, mais rápido que alguma dessas bases consiga se manter atualizada. Além de tudo, seria uma quantidade de dados enorme com esse nível de detalhe para ter armazenado como parte da sua infra.
Claro que para ter uma API com response time legal, terá que ser uma paga. Se você aluga seu sistema, seria uma boa ideia embutir esse custo para o ambiente de produção, e deixar somente o ambiente dev acessar a versão gratuita.

@leandrogabrielcunha teoricamente a área de Issues seria para levantar problemas relacionado ao projeto, porém não temos outro lugar aqui no repositório do projeto para levantar essas discussões (tipo um Fórum), então tudo bem...

Em relação a sua dúvida, hoje o serviço mais performático de consulta de endereços por CEP, é do Google, sendo as APIs do Google Maps

É muito comum pequenas e médias empresas utilizarem serviços "mais baratos" como o da VIA Cep, porém eles são "menos performáticos", visto que são serviços massivamente utilizados por possuirem planos gratuitos, e com isso você tem um Throughput baixo, gerando esse "response time" alto que não te atende.

Esse repositório aqui, cobre somente a lista de Países, Estados/Federações (incluindo Distrito Federal) e Municípios/Cidades, esse projeto não contempla a lista de Endereços relacionados aos CEPs, seria uma lista bem grande, considerando que um único município/cidade poderia possuir milhares de CEPs, e só de municípios/cidades brasileiras temos mais de 5 mil.

Além desse grande volume de dados necessário para relacionar os devidos CEPs aos seus endereços, você tem o custo de dar manutenção nessa lista, considerando que essas informações são "vivas", isso significa que elas se atualizam de tempos em tempo (novos bairros/zonas são criadas, bairros/zonas antigas são atualizadas com novas quadras/lotes, um novo loteamento pode gerar um novo conjunto de CEPs a depender do município/cidade).

Resumindo, não vale a pena você criar uma solução local de consulta de endereços, só importando uma base de dados para ter mais "performance" nas consultas de endereços... Nem o Google (Google Maps e WAZE), Apple (Apple MAPS) e outras BigTechs gastam dinheiro fazendo isso, quem dá manutenção na base de dados deles são os próprios usuários, informando problemas e atualizando locais nos Maps (com auxilio de IA, claro).

Os dados desse projeto permite você criar um cadastro de clientes com uma lista fixa de Cidades e Estados (e países se necessário), evitando que o cliente informe dados errados para esses atributos. O uso dessa lista aqui, também pode ser útil para você relacionar a Cidade/Estado retornado pelo seu provedor de endereços, ao seu respectivo código IBGE (ou código BACEN), que é requerido e muitas integrações com sistemas Governamentais (ou sistemas financeiros), sendo que essas informações, os provedores de serviços de endereço geralmente não possuem.

Olá pessoal, tudo bem? Espero que sim!
Gostaria de agradecer a todos por dedicar um tempo para me responder, com base em suas respostas e mais algumas pesqueisas acabei criando uma tabela auxiliar em minha API com ranges de CEP por cidade.

Hoje para o calculo de nossos fretes usamos como base, CIDADE, ESTADO E PAÍS sendo desta forma a range de ceps por cidades foi mais quue o suficiente :)