MIT License

项目介绍

BrasilAPI/cep-promise 是一个托管在 GitHub 上的开源项目,主要使用 JavaScript 编写,采用 MIT License 许可证,目前获得 3.0k 个 Star、305 次 Fork。

仓库全名
BrasilAPI/cep-promise
开源许可证
MIT License
Star 数
3.0k
Fork 数
305
未关闭 Issue
26

README 摘要

CEP Promise Busca por CEP integrado diretamente aos serviços dos Correios, ViaCEP e WideNet (Node.js e Browser) Features Sempre atualizado em tempo-real por se conectar diretamente aos serviços dos Correios, ViaCEP e WideNet. Possui alta disponibilidade por usar vários serviços como fallback. Sempre retorna a resposta mais rápida por fazer as consultas de forma concorrente. Sem limites de uso (rate limits)…

完整内容见 GitHub 原始 README 或本页 。

常见问题

cep-promise 用什么语言开发?

主要使用 JavaScript 编写,采用 MIT License 许可证,目前有 3.0k 个 Star。

cep-promise 可以免费商用吗?

仓库采用 MIT License 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 cep-promise 的源码?

可以直接克隆仓库:git clone https://github.com/BrasilAPI/cep-promise.git,默认分支为 master;安装与运行步骤见仓库 README。

cep-promise 最近还在维护吗?

仓库最近一次更新为 2024年3月29日,当前有 26 个未关闭 Issue;Star 数为 3.0k,可作为社区活跃度的参考。

关于

GitHub 原始描述

Busca por CEP integrado diretamente aos serviços dos Correios, ViaCEP e outros (Node.js e Browser)

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
3669
价值分
1885
活跃状态
活跃

语言占比

JavaScript

Release

README

CEP Promise

Known Vulnerabilities

Busca por CEP integrado diretamente aos serviços dos Correios, ViaCEP e WideNet (Node.js e Browser)

Features

  • Sempre atualizado em tempo-real por se conectar diretamente aos serviços dos Correios, ViaCEP e WideNet.
  • Possui alta disponibilidade por usar vários serviços como fallback.
  • Sempre retorna a resposta mais rápida por fazer as consultas de forma concorrente.
  • Sem limites de uso (rate limits) conhecidos.
  • Interface de Promise extremamente simples.
  • Suporte ao Node.js 10.x, 11.x, 12.x, 13.x, 14.x e @stable.
  • Suporte ao Node.js 4.x, 5.x, 6.x, 7.x, 8.x, 9.x, até cep-promise versão 3.0.9.
  • Suporte ao Node.js 0.10.x e 0.12.x até cep-promise versão 2.0.8.
  • 100% de code coverage com testes unitários e E2E.
  • Desenvolvido utilizando ES6.

Como utilizar

Teste e aprenda aqui.

Realizando uma consulta

Por ser multifornecedor, a biblioteca irá resolver a Promise com o fornecedor que mais rápido lhe responder.

import cep from 'cep-promise'

cep('05010000')
  .then(console.log)

  // {
  //   "cep":  "05010000",
  //   "state":  "SP",
  //   "city":  "São Paulo",
  //   "street":  "Rua Caiubí",
  //   "neighborhood":  "Perdizes",
  // }

Você também poderá passar o CEP como Inteiro

Em muitos sistemas o CEP é utilizado erroneamente como um Inteiro (e com isto cortando todos os zeros à esquerda). Caso este seja o seu caso, não há problema, pois a biblioteca irá preencher os caracteres faltantes na String, por exemplo:

import cep from 'cep-promise'

// enviando sem ter um zero à esquerda do CEP "05010000"
cep(5010000)
  .then(console.log)

  // {
  //   "cep":  "05010000",
  //   "state":  "SP",
  //   "city":  "São Paulo",
  //   "street":  "Rua Caiubí",
  //   "neighborhood":  "Perdizes",
  // }

Quando o CEP não é encontrado

Neste caso será retornado um "service_error" e por ser multifornecedor, a biblioteca irá rejeitar a Promise apenas quando tiver a resposta negativa de todos os fornecedores.

import cep from 'cep-promise'

cep('99999999')
  .catch(console.log)

  // {
  //     name: 'CepPromiseError',
  //     message: 'Todos os serviços de CEP retornaram erro.',
  //     type: 'service_error',
  //     errors: [{
  //       message: 'CEP NAO ENCONTRADO',
  //       service: 'correios'
  //     }, {
  //       message: 'CEP não encontrado na base do ViaCEP.',
  //       service: 'viacep'
  //     }]
  // }

Quando o CEP possui um formato inválido

Neste caso será retornado um "validation_error" e a biblioteca irá rejeitar imediatamente a Promise, sem chegar a consultar nenhum fornecedor.

import cep from 'cep-promise'

cep('123456789123456789')
  .catch(console.log)

  // {
  //     name: 'CepPromiseError',
  //     message: 'CEP deve conter exatamente 8 caracteres.',
  //     type: 'validation_error',
  //     errors: [{
  //       message: 'CEP informado possui mais do que 8 caracteres.',
  //       service: 'cep_validation'
  //     }]
  // }

Options

  • timeout: Timeout em milisegundos das consultas em cada serviço. O tempo total poderá ser maior devido a limites no paralelismo.
  • providers: Lista de providers a serem usados na consulta. Default é usar todos os providers disponíveis.
import cep from 'cep-promise'
cep('5010000', { timeout: 5000, providers: ['brasilapi'] })
  .then(console.log)

Instalação

Browser usando CDN
<script src="https://cdn.jsdelivr.net/npm/cep-promise/dist/cep-promise.min.js"></script>
npm
$ npm install --save cep-promise
Bower
$ bower install --save cep-promise
yarn
$ yarn add cep-promise
Angular 2
import * as cep from 'cep-promise'

cep('05010000')
  .then(console.log)

Como contribuir

Leia nosso guia de contribuição aqui

Contribuidores

Autor


@filipedeschamps

评论

暂无评论