Consumir WebService viaCep com Spring Boot

3 respostas
Hubert_Fernandez

Olá, esse é meu primeiro post e espero não estar infringindo nenhuma regra ou postando no lugar errado. Estou tentando consumir o viaCep dos correios pra buscar endereços por cep. Mas não está me retornando nada aqui. Alguém pode ajudar?

package com.buscacep.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

public class Endereco {

	@JsonIgnoreProperties(ignoreUnknown = true)

	@JsonProperty("cep")
	private String cep;

    @JsonProperty("logradouro")
	private String logradouro;
	@JsonProperty("complemento")
	private String complemento;
	@JsonProperty("bairro")
	private String bairro;
	@JsonProperty("localidade")
	private String localidade;
	@JsonProperty("uf")
	private String uf;
	@JsonProperty("unidade")
	private String unidade;
	@JsonProperty("ibge")
	private String ibge;
	@JsonProperty("gia")
	private String gia;
	
	public Endereco() {
	}

	@JsonProperty("cep")
	public String getCep() {
		return cep;
	}

	@JsonProperty("cep")
	public void setCep(String cep) {
		this.cep = cep;
	}

	@JsonProperty("logradouro")
	public String getLogradouro() {
		return logradouro;
	}

	@JsonProperty("logradouro")
	public void setLogradouro(String logradouro) {
		this.logradouro = logradouro;
	}

	@JsonProperty("complemento")
	public String getComplemento() {
		return complemento;
	}

	@JsonProperty("complemento")
	public void setComplemento(String complemento) {
		this.complemento = complemento;
	}

	@JsonProperty("bairro")
	public String getBairro() {
		return bairro;
	}

	@JsonProperty("bairro")
	public void setBairro(String bairro) {
		this.bairro = bairro;
	}

	@JsonProperty("localidade")
	public String getLocalidade() {
		return localidade;
	}

	@JsonProperty("localidade")
	public void setLocalidade(String localidade) {
		this.localidade = localidade;
	}

	@JsonProperty("uf")
	public String getUf() {
		return uf;
	}

	@JsonProperty("uf")
	public void setUf(String uf) {
		this.uf = uf;
	}

	@JsonProperty("unidade")
	public String getUnidade() {
		return unidade;
	}

	@JsonProperty("unidade")
	public void setUnidade(String unidade) {
		this.unidade = unidade;
	}

	@JsonProperty("ibge")
	public String getIbge() {
		return ibge;
	}

	@JsonProperty("ibge")
	public void setIbge(String ibge) {
		this.ibge = ibge;
	}

	@JsonProperty("gia")
	public String getGia() {
		return gia;
	}

	@JsonProperty("gia")
	public void setGia(String gia) {
		this.gia = gia;
	}

	@Override
	public String toString() {
		return "BuscaCepDomain [cep=" + cep + ", logradouro=" + logradouro + ", complemento=" + complemento
				+ ", bairro=" + bairro + ", localidade=" + localidade + ", uf=" + uf + ", unidade=" + unidade
				+ ", ibge=" + ibge + ", gia=" + gia + "]";
	}
	
}

package com.buscacep.service;

import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;

import com.buscacep.domain.Endereco;

@Service
public class BuscaCepService {

	
	public String find(RestTemplate restTemplate) {
		Endereco endereco = restTemplate.getForObject(
				"https://viacep.com.br/ws/06330000/json/", Endereco.class);
		return endereco.toString();
	}
}

package com.buscacep.resource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

import com.buscacep.service.BuscaCepService;

@RestController
@RequestMapping("/enderecos")
public class BuscaCepResource {

	private static final RestTemplate Endereco = null;
	@Autowired
	private BuscaCepService buscaCepService;
	
	public String find() {
		buscaCepService.find(Endereco);
		return Endereco.toString();
	}
}

package com.buscacep;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class BuscacepApplication {

	public static void main(String[] args) {
		SpringApplication.run(BuscacepApplication.class, args);
	}

}

3 Respostas

darlan_machado

Nenhum erro, exceção, mensagem?

Hubert_Fernandez

Opa blz?! O projeto compila, toda sem nenhuma mensagem de erro endpoint mostra erro 404 not found.

darlan_machado

Compilar ok, mas

Indica que uma requisição http não encontrou o alvo esperado.
Ou seja, o endereço solicitado não existe.

Criado 26 de setembro de 2019
Ultima resposta 26 de set. de 2019
Respostas 3
Participantes 2