Biblioteca .NET para consulta de CEPs brasileiros com múltiplos provedores, controle de cache e fallback.
$ dotnet add package RBytesNetCepRBytesNetCep é uma biblioteca .NET para consulta de CEPs brasileiros, com múltiplos provedores e fallback automático. Ela facilita a integração de busca de endereços a partir do CEP, garantindo maior disponibilidade e confiabilidade ao utilizar diferentes fontes de dados. Controle de cache para evitar requisições desnecessárias e melhorar a performance.
Adicione o pacote ao seu projeto via NuGet:
dotnet add package RBytesNetCep
Ou, se estiver utilizando referência local:
dotnet add reference ../RBytesNetCep/RBytesNetCep.csproj
using RBytesNetCep;
var service = new CepService();
var result = await service.GetCepAsync("06233-030", false); //true = não usar cache, false = usar cache
if (result?.Address != null)
{
Console.WriteLine("Endereço encontrado:");
Console.WriteLine($"CEP: {address.Cep}");
Console.WriteLine($"Logradouro: {address.Logradouro}");
Console.WriteLine($"Bairro: {address.Bairro}");
Console.WriteLine($"Cidade: {address.Localidade}");
Console.WriteLine($"UF: {address.Uf}");
Console.WriteLine($"Complemento: {address.Complemento}");
Console.WriteLine($"DDD: {address.Ddd}");
Console.WriteLine($"Provider: {address.ProviderUsado}"); //informa de qual provider retornou o resultado
}
else
{
Console.WriteLine(result?.ErrorMessage);
}
using RBytesNetCep;
var service = new CepService();
var result = await cepService.GetCepByProviderAsync(cep, "BrasilAPI"); //opções: ApiCep, BrasilAPI, OpenCEP e ViaCEP
if (result?.Address != null)
{
Console.WriteLine("Endereço encontrado:");
Console.WriteLine($"CEP: {address.Cep}");
Console.WriteLine($"Logradouro: {address.Logradouro}");
Console.WriteLine($"Bairro: {address.Bairro}");
Console.WriteLine($"Cidade: {address.Localidade}");
Console.WriteLine($"UF: {address.Uf}");
Console.WriteLine($"Complemento: {address.Complemento}");
Console.WriteLine($"DDD: {address.Ddd}"); //nem todos os provedores trazem essa informação
Console.WriteLine($"Provider: {address.ProviderUsado}");
}
else
{
Console.WriteLine(result?.ErrorMessage);
}
Atualmente, a biblioteca suporta os seguintes provedores, com fallback automático:
A ordem de fallback pode ser personalizada conforme a necessidade.
{
"cep": "06233-030",
"logradouro": "Avenida dos Autonomistas",
"bairro": "Presidente Altino",
"localidade": "Osasco",
"uf": "SP",
"complemento": "",
"ddd": ""
}
Pull requests são bem-vindos! Para grandes mudanças, abra uma issue primeiro para discutir o que você gostaria de modificar.
por: Rodrigo Delphino rodrigo.s.delphino@gmail.com