42
loading...
This website collects cookies to deliver better user experience
XMLHttpRequest
que já foi bastante utilizado para consumirmos API's. .then()
. Quando estamos realizando uma busca numa API, utilizamos as promises para executar ações quando a busca for realizada. Aqui você pode ler um artigo que explana o funcionamento das promisescepSearch
. <div class="container">
<form action="">
<div class="form-group">
<label for="cep">CEP</label><br>
<input type="text" class="form-control" id="cep">
<small>00000-000</small>
</div>
<div class="form-group">
<label for="logradouro">Logradouro</label><br>
<input type="text" class="form-control" id="logradouro">
<small>Rua</small>
</div>
<div class="form-group">
<label for="bairro">Bairro</label><br>
<input type="text" class="form-control" id="bairro">
<small>Bairro</small>
</div>
<div class="form-group">
<label for="localidade">Localidade</label><br>
<input type="text" class="form-control" id="localidade">
<small>Cidade</small>
</div>
<div class="form-group">
<label for="uf">UF</label><br>
<input type="text" class="form-control" id="uf">
<small>Estado</small>
</div>
</form>
</div>
#cep
.$("#cep").blur(function (e) {
}
$("#cep").blur(function (e) {
let cep = this.value
}
cep
, desse modo, temos o valor que utilizaremos para consultar os dados de endereço.CEP
temos que buscar o valor em alguma API de endereço. Para isso, utilizaremos a API do viacep. Você pode acessa-la através do link: https://viacep.com.br/https://viacep.com.br/ws/cep/json/
https://viacep.com.br/ws/${cep}/json/
cep
a URL que o fetch utilizará.$("#cep").blur(function (e) {
let cep = this.value
fetch(`https://viacep.com.br/ws/${cep}/json/`)
}
.then()
que realiza operações assíncronas. $("#cep").blur(function (e) {
let cep = this.value
fetch(`https://viacep.com.br/ws/${cep}/json/`)
.then(response => {
response.json()
}
.then()
que chamará outra função. Esta função receberá o objeto JSON gerado.$("#cep").blur(function (e) {
let cep = this.value
fetch(`https://viacep.com.br/ws/${cep}/json/`)
.then(response => {
response.json()
.then(data => showData(data))
})
showData
. Aqui iremos tratar o objeto retornado da nossa busca no CEP.showData
irá conter uma arrow function que será responsável por retornar os dados do objeto gerado e atribuir estes dados aos campos correspondentes do formulário. const showData = (result) => {
}
const showData = (result) => {
for(const campo in result){
console.log(campo)
}
}
result
está sendo guardada na constante campo, o console.log executado nos mostra isso.if
para tratar os dados.const showData = (result) => {
for(const campo in result){
if(document.querySelector("#"+campo)){
document.querySelector("#"+campo).value = result[campo]
}
}
}
document.querySelector("#"+campo).value = result[campo]
atribui o valor do campo ao input com o id do campo em questão. Assim, o funcionamento é estabelecido.