Filtro de cidades do Brasil
Recentemente me deparei com a tarefa de criar um filtro que teria de ter todas as cidades do Brasil por Estado. Mas a forma explicada estava errada na lógica de programação, o que realmente se precisava era de um filtro que mostrasse as cidades dos estados brasileiros quando selecionados. Frente a isso pesquisei por api's que me auxiliassem para que eu não precisasse guardar em um banco de dados todas as cidade do nosso país. Encontrei uma api pública do próprio Instituto Brasileiro de Geografia e Estatística (IBGE), na qual fornece dados de municípios, podendo ser pesquisados por microrregião, mesorregião, UF ou região. Possuindo uma URL extremamente amigável e sendo uma API pública acredito ser a melhor para esta função, suas respostas à requisições são muito rápidas (quase que instatâneas) e é de fácil compreensão para ser implementada. Para concluir minha tarefa criei um array com as 27 unidades federativas do Brasil, assim a requisição é feita com os números das UF's já guardadas, estes números são únicos e podem ser acessados nesse link: https://www.ibge.gov.br/explica/codigos-dos-municipios.php. As URL's para requisições e a documentação da API podem ser acessadas nesse link: https://servicodados.ibge.gov.br/api/docs/localidades. Espero que este breve artigo te ajude algum dia!
Eu sempre dou uma olhada no projeto Brasil APi, para seu caso já tem uma solução com robustes e interface amigavel para integrações. Sugiro dar uma olhada brasilapi.com.br além de uma api pronta para CEP.
Eu mantenho todas as cidades no banco de dados. Encontrei um Seeder no github há anos e sempre uso ele. link aqui
Aqui a pergunta é: Porque não manter em banco? É um número pequeno, previsível e que quase nunca muda. Latência de um banco é uma ordem de grandeza menor que a latência de uma API.
Caso Seja uma necessidade extrema é recomendável a api dos correios. porém tem que ter contrato com eles