cep_fetcher 0.1.2 copy "cep_fetcher: ^0.1.2" to clipboard
cep_fetcher: ^0.1.2 copied to clipboard

Pacote Dart simples para obter dados de endereço no Brasil a partir de um CEP usando múltiplas APIs.

cep_fetcher #

Funcionalidades #

  • Obtém dados de endereço (logradouro, bairro, cidade, estado) a partir de um CEP, utilizando múltiplas APIs:
  • Tenta usar a próxima API automaticamente caso uma falhe.
  • Cache interno em memória para evitar requisições repetidas para o mesmo CEP durante a execução.
  • Tratamento de erros via exceções específicas, com mensagens claras para facilitar o diagnóstico.

Como Usar #

Importe o pacote e chame a função fetchCepData:

import 'package:cep_fetcher/cep_fetcher.dart';

void getAddress() async {
    const inputCep = '01001000';

  try {
    final result = await fetchCepData(inputCep, timeout: Duration(seconds: 3));
    print('✔️ CEP encontrado:');
    print('   ${result!.address}, ${result.city} - ${result.state}');
  } catch (e) {
    print('❌ Erro ao buscar CEP: $e');
  }
}

Modelo de CEP #

class Cep {
  final String cep;
  final String address;
  final String district;
  final String city;
  final String state;

  const Cep({
    required this.cep,
    required this.address,
    required this.district,
    required this.city,
    required this.state,
  });

  Map<String, dynamic> toJson() => {
    'cep': cep,
    'address': address,
    'district': district,
    'city': city,
    'state': state,
  };
}

Provedores de API #

Ordem de fallback (tentativas):

  1. ViaCep (viacep.com.br)
  2. AwesomeAPI (cep.awesomeapi.com.br)
  3. OpenCEP (opencep.com)

Tratamento de Erros #

A função fetchCepData pode lançar exceções específicas para facilitar o tratamento de erros:

  • InvalidCepFormatException – O CEP fornecido não contém 8 dígitos válidos após remoção de formatação.
  • TimeoutOutOfRangeException – O valor fornecido para timeout está fora do intervalo permitido (1 a 10 segundos).
  • CepNotFoundException – Nenhuma das APIs públicas conseguiu retornar dados para o CEP informado.

Todas essas exceções herdam de CepFetcherException, permitindo capturas genéricas ou específicas conforme desejado.

Exemplo Completo #

import 'package:cep_fetcher/cep_fetcher.dart';

void main() async {
  const inputCep = '01001000';

  try {
    final result = await fetchCepData(inputCep, timeout: Duration(seconds: 3));

    print('✔️ CEP encontrado:');
    print('   ${result!.address}, ${result.city} - ${result.state}');
  } catch (e) {
    print('❌ Erro ao buscar CEP: $e');
  }
}

Histórico de versões #

Consulte o CHANGELOG para detalhes sobre as versões anteriores.

Este pacote utiliza APIs públicas de terceiros (ViaCEP, AwesomeAPI e OpenCEP) para obtenção de dados de endereço a partir de um CEP. O desenvolvedor desta biblioteca não tem afiliação com os serviços mencionados, tampouco garante a disponibilidade, exatidão ou continuidade de funcionamento dessas APIs.

O uso deste pacote é de responsabilidade do desenvolvedor que o integra em sua aplicação. Certifique-se de revisar os Termos de Uso de cada provedor de API antes de utilizar este pacote em ambientes de produção.

Licença #

Este projeto está licenciado sob a Licença MIT.

Contato #

Criado por Lucas Vinícius Marques, entre em contato via LinkedIn

12
likes
160
points
57
downloads

Publisher

unverified uploader

Weekly Downloads

Pacote Dart simples para obter dados de endereço no Brasil a partir de um CEP usando múltiplas APIs.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter, http

More

Packages that depend on cep_fetcher