Java

Como consumir api usando OpenFeign

Neste tutorial veremos como consumir uma api no Java utilizando o OpenFeign e o Spring.


O que é o Spring?

O Spring é um framework open source para a plataforma Java, cujo objetivo é facilitar o desenvolvimento de aplicações em Java.

 

O que é o OpenFeign?

O Feign é um cliente Binder do java para requisições Http que foi inspirado no Retrofit, JAXRS-2.0 e WebSocket.

Seu principal objetivo é facilitar a complexidade nas requisições de apis.

 

Requisitos para execução deste tutorial:

 

  • Java;
  • Maven;

 

Como consumir api usando OpenFeign.

Antes de iniciar a codificação, vamos criar e configurar o nosso projeto, para isso vamos utilizar o spring initializr  para montar a estrutura do nosso projeto. Para isso basta acessar o site spring initializr.

Com o site do spring initializr aberto vamos adicionar as dependências necessárias para execução do projeto. Dependências utilizadas:

  • spring-boot-starter-web
  • spring-cloud-starter-openfeign

A figura abaixo mostra como ficou a configuração no spring initializr:

 

Como consumir api usando OpenFeign
Como consumir api usando OpenFeign

 

 

Depois de ter configurado o projeto vamos para codificação:

Primeiro vamos adicionar a anotação @EnableFeignClients a classe principal da aplicação, que ira habilitar a utilização do feignclient:

@SpringBootApplication
@EnableFeignClients
public class OpenFeignApplication { public static void main(String[] args) { SpringApplication.run(OpenFeignApplication.class, args); } }

 

Após, vamos criar uma interface chamada CepService que conterá o método com as configurações para o consumo da api, para os testes vamos utilizar a api do viacep, segue o código com a implementação:

@FeignClient(name = "viacep", url = "https://viacep.com.br/ws" )
	static interface CepService {
		@GetMapping("{cep}/json")
	    String getEnderecoPorCep(@PathVariable("cep") String cep);
	} 

Com o código acima, já conseguimos consumir a api do via cep, para isso basta chamar o metódo getEnderecoPorCep()  da interface CepService que criamos, passando o número do cep como parâmetro. Segue abaixo um exemplo de como podemos utilizar essa interface:

package com.example.OpenFeign;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

@SpringBootApplication
@EnableFeignClients
public class OpenFeignApplication implements CommandLineRunner{

	public static void main(String[] args) {
		SpringApplication.run(OpenFeignApplication.class, args);
	}
	
	
	@FeignClient(name = "viacep", url = "https://viacep.com.br/ws" )
	static interface CepService {

		@GetMapping("{cep}/json")
	    String getEnderecoPorCep(@PathVariable("cep") String cep);

	}
	
	@Autowired
	private CepService cepService;	
	
	@Override
	public void run(String... args) throws Exception {
		
		System.out.println("Iniciando projeto .....");
		
		String resposta = cepService.getEnderecoPorCep("01001000");			
		
		System.out.println("Resposta da api viacep: ");
		
		System.out.println(resposta);
		
		
	}

}

 

Uma breve explicação do código acima. No código acima implementei o CommandLineRunner, para executar a chamada da api assim que o programa iniciar e sobrecrevi o metódo run()  com a lógica necessária para chamada do CepService.

Saída da console:

Iniciando projeto .....
Resposta da api viacep: 
{
  "cep": "01001-000",
  "logradouro": "Praça da Sé",
  "complemento": "lado ímpar",
  "bairro": "Sé",
  "localidade": "São Paulo",
  "uf": "SP",
  "ibge": "3550308",
  "gia": "1004",
  "ddd": "11",
  "siafi": "7107"
}            

Este foi um breve tutorial de como consumir uma api utlizando o spring de forma rápida e fácil, abaixo segue o link do código fonte da aplicação criada.

 

Segue um vídeo de Exemplo:

Código fonte do tutorial:

Código Fonte

Referências:

 

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *