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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="LeadSoft.Adapter.IBGE" Version="10.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="LeadSoft.Adapter.IBGE" Version="10.1.0" />
                    
Directory.Packages.props
<PackageReference Include="LeadSoft.Adapter.IBGE" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add LeadSoft.Adapter.IBGE --version 10.1.0
                    
#r "nuget: LeadSoft.Adapter.IBGE, 10.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package LeadSoft.Adapter.IBGE@10.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=LeadSoft.Adapter.IBGE&version=10.1.0
                    
Install as a Cake Addin
#tool nuget:?package=LeadSoft.Adapter.IBGE&version=10.1.0
                    
Install as a Cake Tool

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 Scoped ou Singleton.
  • 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.
  • 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.
  • Task<DTOCity> GetCitiesAsync(int aCityId)

    • Retorna os dados de um município específico pelo código IBGE.
    • Retorna null quando 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 IServiceCollection com AddIBGEApi() — evita problemas com ciclo de vida do HttpClient.
  • Configure Timeout e 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 CancellationToken em 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 HttpMessageHandler falso no HttpClient para 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.

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

developers@leadsoft.inf.br.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
Loading failed