Busca por CEP usando o melhor do JavaScript, callbacks
Todos sabem que hoje as Promises dominam o mundo do JavaScript. O que faz com que a utilização de callbacks seja algo do passado. Porém o oldschool é sempre mais legal, portanto essa biblioteca mostra como callbacks ainda podem ser utilizados e como você pode se sentir um hipster ao utilizá-las em 2019.
- Interface com callbacks seguindo o padrão da biblioteca padrão do
Node.js
- Possui a mesma interface tanto nos erros como nas respostas do projeto cep-promise
- O projeto utiliza de
var
que é o jeito da massa de se criar variáveis em JavaScript, sim isso é uma feature
Por ser multifornecedor, a biblioteca irá chamar o callback com o fornecedor que mais rápido lhe responder.
var cep = require('cep-callback')
cep('05010000', function (err, cepData) {
console.log(cepData)
})
// {
// "cep": "05010000",
// "state": "SP",
// "city": "São Paulo",
// "street": "Rua Caiubí",
// "neighborhood": "Perdizes",
// }
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:
var cep = require('cep-callback')
// enviando sem ter um zero à esquerda do CEP "05010000"
cep(5010000, function (err, cepData) {
console.log(cepData)
})
// {
// "cep": "05010000",
// "state": "SP",
// "city": "São Paulo",
// "street": "Rua Caiubí",
// "neighborhood": "Perdizes",
// }
Neste caso será retornado um "service_error"
e por ser multifornecedor, a biblioteca irá retornar um erro no callback apenas quando tiver a resposta negativa de todos os fornecedores.
var cep = require('cep-callback')
cep('99999999', function (err, cepData) {
console.log(err)
})
// {
// 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'
// }, {
// message: 'CEP não encontrado na base do Cep Aberto.',
// service: 'cepaberto'
// }]
// }
Neste caso será retornado um "validation_error"
e a biblioteca irá retornar um erro no callback, sem chegar a consultar nenhum fornecedor.
var cep = require('cep-callback')
cep('123456789123456789', function (err, cepData) {
console.log(err)
})
// {
// 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'
// }]
// }
<script src="https://cdn.jsdelivr.net/npm/cep-callback/src/index.js"></script>
$ npm install --save cep-callback
$ bower install --save cep-callback
import * as cep from 'cep-callback'
cep('05010000', function (err, cepData) {
console.log(cepData)
})
Leia nosso guia de contribuição aqui
@thor99 |
---|
@otaviopace |
---|