Consumindo API Rest

Neste rápido post mostrarei um exemplo de como consumir uma API Rest para obter um JSON como resposta.

API Via CEP

Para nosso exemplo, utilizaremos a API do Via CEP. Com essa API podemos consultar CEP’s e receber informações sobre o CEP desejado.

Em seguida você encontrará o link para a documentação oficial.

https://viacep.com.br/

Consumindo API com NodeJS

Para consumir informações da API Via cep iremos utilizara a biblioteca axios para facilitar a comunicação HTTP.

Com isso teremos apenas o metodo que inicia a aplicação solicitando o CEP desejado e uma função que realiza a busca.

const main = async () => {
let cep = ''
do {
cep = prompt('Qual o cep que deseja consultar?');
if (cep) {
const endereco = await ViaCEPService.getEndereco(cep)
console.log(endereco)
} else {
cep = false
}
} while (cep)

}

main()
const axios = require('axios').default

const getEndereco = async (cep) => {
try {
const viaCepURL = `https://viacep.com.br/ws/${cep}/json/`
const {data} = await axios.get(viaCepURL)
return data
} catch (error) {
console.error(error)
}
}

module.exports = { getEndereco }

Ao executarmos o código precisaremos informar o CEP e receberemos o resultado, conforme a imagem abaixo.

Executando o projeto

Clique aqui para acesso ao código completo.

Consumindo e Expondo API Rest com Spring Boot

Nesta parte do tutorial vamos demonstrar como consumir uma API rest utilizando o RestTemplate do Spring Boot.

Demonstrarei aqui a função principal onde realizamos a chamada para api externa.

public Address getAddress(String cep) {
String url = "https://viacep.com.br/ws/"+cep+"/json/";
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<Address> response = restTemplate.exchange(url, HttpMethod.GET, null, Address.class);
return response.getBody();
}

Básicamente o que precisamos é setar a url, tipo do metodo de http request e o objeto que esperamos como resposta.

Response

Para acesso ao código completo, confira no github.

https://github.com/aluizrech/spring-api-consumer

Fim

Caso queira fazer alguma consideração, comente no post.

Deixe um comentário

O seu endereço de e-mail não será publicado.