API를 외부에서 사용할 수 있는 경우 Spring Boot를 사용할 수 있습니다.

Em algum momento pode acontecer da nossa aplicação ter a necessidade de consumir ou se integrar com um serviço externo.
Pensando nisso surgiu um projeto chamado Feign.

왜 그럴까요?



O Feign é um projeto que está dentro do Spring Cloud ele é
utilizado para integração e consumo de serviços rest.

Ele torna o consumo de clients de serviço da web mais fácil. 포이
개조 및 JAX-RS-2.0을 지원하지 않습니다.
Uma grande facilidade do uso do Feign é que não precisamos
escrever nenhum código para chamar o serviço, a não ser uma
인터페이스 정의.

@FeignClient é a notação que torna o consumo do serviço
극단적인 단순함.

Eu vou mostrar um exemplo simples consumindo api
viacep.com.br/ws/{cep}/json/

Api devolve um json na seguinte estrutura;


  • 추가 정보 pom.xml

  • spring-cloud-starter-openfeign



        <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
    


    spring-cloud-dependencies



      <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>Hoxton.SR8</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    


  • 프로젝트 구성

  • @EnableFeignClients에 주석을 추가하지 않고 클래스 보안 주체를 수행합니다.
    projeto, para habilitar o Feign, no caso aqui a classe
    신청.
    Com essa anotação habilitamos uma busca pela 인터페이스 클라이언트
    que devem ser consumida.

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


  • Criaremos a classe que vai retornar nosso objeto

  •    public class Endereco {
    
        private String cep;
        private String logradouro;
        private String complemento;
        private String bairro;
        private String localidade;
        private String uf;
        private String ibge;
        private String gia;
        private String ddd;
        private String siafi;
    
    }
    


  • Criaremos는 인터페이스에서 @FeignClient를 통해 서비스를 제공합니다.

  • Os paraâmetros url e name são obrigatórios;
    onde url: é a base do serviço que vai ser consumido
    e name: o nome do cliente
    Precisamos dizer qual o Endepoint o buscarEnderecoPorCep vai
    활용자;

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


  • Agora é só criar a rota que usaremos para consumir o serviço;

  • @RestController
    public class CepRestService {
    
        @Autowired
        private CepService cepService;
    
        @GetMapping("/{cep}")
        public ResponseEntity<Endereco> getCep(@PathVariable String cep) {
    
            Endereco endereco = cepService.buscaEnderecoPorCep(cep);
    
            return endereco != null ? ResponseEntity.ok().body(endereco) : ResponseEntity.notFound().build(); 
        }
    
    }
    


    Pronto, agora sua aplicação está consumindo um serviço externo
    com poucas linhas e com o mesmo resultado que teríamos com
    RestTemplate.



    git 모델이 아닌 응용 프로그램 링크Exemplo

    좋은 웹페이지 즐겨찾기