ExIbge

ExIbge é um cliente Elixir amigável e moderno para a API de Localidades do IBGE.
Desenvolvido para ser simples e fácil de integrar em qualquer projeto Elixir.

Hex.pm Docs

Instalação

Adicione ex_ibge à sua lista de dependências no mix.exs:

def deps do
[
{:ex_ibge, "~> 0.1.0"}
]
end

Como Usar

A biblioteca facilita a busca por municípios permitindo o uso de atoms (como :sp, :rj) para identificar estados, além de suportar filtros nativos da API.

Buscando Municípios

alias ExIbge.Locality.Municipality
# Buscar um município pelo ID
iex> [sp] = Municipality.find(3550308)
%ExIbge.Geography.Municipality{
id: 3550308,
name: "São Paulo",
microregion: %ExIbge.Geography.Microregion{id: 35052, name: "São Paulo"},
immediate_region: %ExIbge.Geography.ImmediateRegion{id: 35001, name: "São Paulo"}
}
# Buscar municípios ordenados por nome
iex> {:ok, ordenados} = Municipality.all(order_by: "nome")
[
%ExIbge.Geography.Municipality{
id: 3550308,
name: "São Paulo",
microregion: %ExIbge.Geography.Microregion{id: 35052, name: "São Paulo"},
immediate_region: %ExIbge.Geography.ImmediateRegion{id: 35001, name: "São Paulo"}
},
...
]

Estruturas de Dados

Os retornos são structs Elixir devidamente mapeadas, facilitando o pattern matching:

%ExIbge.Geography.Municipality{
id: 3550308,
name: "São Paulo",
microregion: %ExIbge.Geography.Microregion{...},
immediate_region: %ExIbge.Geography.ImmediateRegion{...}
}

Próximos Passos

Abaixo estão os módulos e APIs do serviço de Localidades do IBGE que ainda precisam ser implementados:

Localidade

Outros Módulos

Contribuindo

Contribuições são muito bem-vindas! Seja corrigindo bugs, adicionando novas funcionalidades ou melhorando a documentação.

Para detalhes sobre como colaborar, por favor leia nosso Guia de Contribuição.

Sinta-se livre para abrir PRs implementando qualquer um dos itens do To-Do acima!