LeadSoft.Adapter.IBGE
10.1.0
dotnet add package LeadSoft.Adapter.IBGE --version 10.1.0
NuGet\Install-Package LeadSoft.Adapter.IBGE -Version 10.1.0
<PackageReference Include="LeadSoft.Adapter.IBGE" Version="10.1.0" />
<PackageVersion Include="LeadSoft.Adapter.IBGE" Version="10.1.0" />
<PackageReference Include="LeadSoft.Adapter.IBGE" />
paket add LeadSoft.Adapter.IBGE --version 10.1.0
#r "nuget: LeadSoft.Adapter.IBGE, 10.1.0"
#:package LeadSoft.Adapter.IBGE@10.1.0
#addin nuget:?package=LeadSoft.Adapter.IBGE&version=10.1.0
#tool nuget:?package=LeadSoft.Adapter.IBGE&version=10.1.0
LeadSoft® IBGE Api Integration Adapter
LeadSoft.Adapter.IBGE
Adapter .NET para integrar com a API pública de Localidades do IBGE (https://servicodados.ibge.gov.br).
Fornece uma camada leve, testável e orientada a IHttpClientFactory para consultas de estados, regiões e municípios, encapsulando chamadas HTTP, mapeamento de modelos e tratamento de erros de forma consistente para aplicações .NET 10.
Este pacote é um tributo independente e não é afiliado oficialmente ao IBGE.
Somos gratos pela disponibilização dos dados públicos de forma aberta através da API de Localidades do IBGE. Ao utilizar este pacote, você concorda automaticamente com os termos de uso da API do IBGE.
Nuget.Org: LeadSoft.Adapter.IBGE
GitHub Repo: leadsoft-adapter-ibge
Principais características
- Compatível com .NET 10.0.
- Chamadas assíncronas com
async/await. - Fácil integração com injeção de dependência (
IServiceCollection). - Suporte a registro como
ScopedouSingleton. - Projetado para ser testável (injeção de
HttpMessageHandler/HttpClient). - Tratamento centralizado de erros e respostas HTTP.
- Preparado para extensão com políticas de resiliência (ex.: Polly).
- Open Source (MIT License).
Métodos disponíveis
Task<IList<DTOState>> GetStatesAsync()- Retorna a lista completa de estados brasileiros com suas regiões.
Task<DTOState> GetStatesAsync(UF aUF)- Retorna os dados de um estado específico pelo enum
UF. - Inclui código IBGE, sigla, nome e região.
- Retorna os dados de um estado específico pelo enum
Task<IList<DTOCity>> GetStatesCitiesAsync(UF aUF)- Retorna a lista de municípios de um estado pelo enum
UF. - Cada município inclui código IBGE, nome, UF e nome do estado.
- Retorna a lista de municípios de um estado pelo enum
Task<DTOCity> GetCitiesAsync(int aCityId)- Retorna os dados de um município específico pelo código IBGE.
- Retorna
nullquando o código não é encontrado.
Instalação
Pelo CLI do .NET:
dotnet add package LeadSoft.Adapter.IBGE
Ou via NuGet Package Manager no Visual Studio (pesquise por LeadSoft.Adapter.IBGE).
Uso básico (exemplo)
Abaixo um exemplo genérico de como registrar e usar o adapter em uma aplicação ASP.NET Core / Console com DI.
// Program.cs (exemplo)
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using LeadSoft.Adapter.Ibge;
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
//...
builder.Services.AddIBGEApi(); // scoped (padrão)
// builder.Services.AddIBGEApi(true); // singleton
//...
WebApplication app = builder.Build();
app.Run();
Exemplo de chamada via injeção de dependência:
// Em um Controller, Service ou Minimal API endpoint:
public class LocalidadeService(IIBGE ibge)
{
// Listar todos os estados
IList<DTOState> estados = await ibge.GetStatesAsync();
// Buscar estado específico (ex.: Paraná)
DTOState pr = await ibge.GetStatesAsync(UF.PR);
// Listar municípios de um estado
IList<DTOCity> cidades = await ibge.GetStatesCitiesAsync(UF.PR);
// Buscar município pelo código IBGE
DTOCity curitiba = await ibge.GetCitiesAsync(4106902);
}
DTOs de retorno
DTOState
| Propriedade | Tipo | Descrição |
|---|---|---|
Id |
int |
Código IBGE do estado |
Initials |
string |
Sigla do estado (ex.: PR) |
Name |
string |
Nome completo do estado |
Region |
DTORegion |
Região geográfica do estado |
DTORegion
| Propriedade | Tipo | Descrição |
|---|---|---|
Id |
int |
Código IBGE da região |
Initials |
string |
Sigla da região (ex.: S) |
Name |
string |
Nome da região (ex.: Sul) |
DTOCity
| Propriedade | Tipo | Descrição |
|---|---|---|
Id |
int |
Código IBGE do município (ex.: 4106902) |
Name |
string |
Nome do município (ex.: Curitiba) |
State |
UF |
Enum da UF derivado do código IBGE |
StateName |
string |
Nome do estado derivado da UF |
Configuração recomendada
- Use
IServiceCollectioncomAddIBGEApi()— evita problemas com ciclo de vida doHttpClient. - Configure
Timeoute cabeçalhos necessários conforme os limites da API do IBGE. - Adicione políticas de resiliência com Polly (
Retry,Circuit Breaker) para chamadas de rede. - Propague
CancellationTokenem todas as chamadas assíncronas.
Boas práticas de integração
- Valide entradas (código IBGE ou UF) antes de chamar o adapter.
- Capture e logue erros com
ILogger<T>para diagnóstico: inclua status code e corpo quando aplicável. - Não exponha diretamente os DTOs HTTP ao seu domínio — mapeie para modelos de domínio quando necessário.
- Evite chamadas desnecessárias: implemente cache se fizer muitas consultas aos mesmos dados (os dados do IBGE mudam raramente).
Testes
- Para testes unitários, injete um
HttpMessageHandlerfalso noHttpClientpara simular respostas da API do IBGE. - Cubra cenários: sucesso, município não encontrado, respostas inválidas e timeouts.
- Use fixtures com exemplos de payloads JSON conhecidos para manter os testes determinísticos.
Versionamento e Compatibilidade
- Destinado a .NET 10.0. Verifique a compatibilidade do pacote com seu projeto.
- Siga versionamento semântico: breaking changes → major, novas features → minor, correções → patch.
Licença
Consulte o arquivo de licença no repositório para detalhes sobre uso e redistribuição.
LeadSoft.Adapter.IBGE — adapter simples e testável para facilitar consultas à API de Localidades do IBGE em aplicações .NET 10.
Development
Desenvolvido pelo time da LeadSoft® Soluções Web.
- Lucas Resende Tavares
Frederico Ferreira BitencourtPedro Foresti Leão
Nossa empresa
LeadSoft Soluções Web Ltda
CNPJ 38.043.762/0001-48
Como nos encontrar:
INFORMAÇÕES DE CONTATO Se você tiver alguma dúvida sobre estes Termos ou Serviços, entre em contato conosco em
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- LeadSoft.Common.Library (>= 10.0.4)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on LeadSoft.Adapter.IBGE:
| Package | Downloads |
|---|---|
|
LeadSoft.Common.GlobalDomain
LeadSoft® Global Domain reúne classes e métodos que facilitam o dia-a-dia dos desenvolvedores .net. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.1.0 | 40 | 7/16/2026 |
| 10.0.4 | 154 | 7/6/2026 |
| 10.0.2 | 162 | 6/15/2026 |
| 10.0.1 | 435 | 3/19/2026 |
| 10.0.0 | 684 | 12/1/2025 |
| 9.0.4 | 552 | 9/13/2025 |
| 9.0.3 | 343 | 8/19/2025 |
| 9.0.2 | 162 | 8/1/2025 |
| 9.0.1 | 375 | 7/11/2025 |
| 9.0.0 | 442 | 5/30/2025 |
| 8.0.8 | 502 | 4/24/2025 |
| 8.0.7 | 657 | 10/23/2024 |
| 8.0.6 | 623 | 8/12/2024 |
| 8.0.5 | 629 | 7/16/2024 |
| 8.0.4 | 509 | 7/1/2024 |
| 8.0.3 | 326 | 6/28/2024 |
| 8.0.2 | 395 | 6/18/2024 |
| 8.0.1 | 459 | 6/5/2024 |
| 8.0.0 | 545 | 5/28/2024 |
| 6.0.5 | 677 | 6/13/2023 |