Feign:声明式REST调用

一. 简介

1. 声明式,模板化的HTTP客户端,可以帮助我们更加便捷,优雅的调用HTTP API;

2. 为服务消费者整合Feign

添加spring-cloud-starter-openfeigh依赖;

创建一个Feign接口,添加@FeignClient注解;

在Controller中调用Feign接口;

3. 自定义Feign配置

feign:

client:

config:

default:

connectTimeout: // 相当于Request.Options

   readTimeout: // 相当于Request.Options

   loggerLevel: // 配置Feign的日志级别,相当于代码配置方式中的Logger

   errorDecoder: // Feign的错误解码器,相当于代码配置方式中的ErrorDecoder

   retryer: // 配置重试,相当于代码配置方式中的Retryer

   requestInterceptors: // 配置拦截器,相当于代码配置方式中的RequestInterceptor

   decode404:

4. 对压缩的支持

feign.compression.request.enabled = true;

feign.compression.request.mine-types = text/xml, application/xml, application/json;

feign.compression.request.min-request-size = 2048;

feign.compression.response.enabled = true;

5. Feign的日志

可以为通过feign.client.config.loggerLevel为每个Feign客户端配置各自的Logger.level对象,告诉Feign记录哪些日志,Logger.Level的值有以下选择:

NONE:不记录任何日志(默认);

BASIC:仅记录请求方法,URL,响应状态代码以及执行时间;

HEADERS:记录BASIC级别的基础上,记录请求和响应的header;

FULL:记录请求和响应的header,body和元数据;

6. 多参数请求

方法一:URL有几个参数,Feign接口中的方法就有几个参数,使用@RequestParam注解指定具体的请求参数;

方法二:当目标URL参数非常多时,可使用Map来简化Feign接口的编写;

7. 上传文件

Feign官方提供的子项目feign-form中实现了上传文件所需的Encoder;

原文地址:https://www.cnblogs.com/bbbbs/p/12562775.html

时间: 2024-10-07 21:35:35

Feign:声明式REST调用的相关文章

SpringCloud无废话入门03:Feign声明式服务调用

1.Feign概述 在上一篇的HelloService这个类中,我们有这样一行代码: return restTemplate.getForObject("http://hello-service/hello",String.class); 对于代码有一定洁癖的你来说,一定感觉到了,这个url应该是可以被配置的.既然说到配置,那我们首先想到的就是使用java注解的方式.Feign就是这样一个注解框架,它也是netflix为我们提供的,方便我们整合ribbon和hystrix(后面会学习)

Spring Cloud Eureka 分布式开发之服务注册中心、负载均衡、声明式服务调用实现

介绍 本示例主要介绍 Spring Cloud 系列中的 Eureka,使你能快速上手负载均衡.声明式服务.服务注册中心等 Eureka Server Eureka 是 Netflix 的子模块,它是一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移. 服务注册和发现对于微服务架构而言,是非常重要的.有了服务发现和注册,只需要使用服务的标识符就可以访问到服务,而不需要修改服务调用的配置文件.该功能类似于 Dubbo 的注册中心,比如 Zookeeper. Eureka

springCloud(9):使用Feign实现声明式REST调用

一.简介 前面我们是使用RestTemplate实现rest api调用的,代码如下: @GetMapping("/user/{id}") public User findById(@PathVariable Long id) throws Exception {     return  this.restTemplate.getForObject("http://spring-ribbon-eureka-client2/" + id, User.class); }

Spring Cloud 声明式服务调用 Feign

一.简介 在上一篇中,我们介绍注册中心Eureka,但是没有服务注册和服务调用,服务注册和服务调用本来应该在上一章就应该给出例子的,但是我觉得还是和Feign一起讲比较好,因为在实际项目中,都是使用声明式调用服务.而不会在客服端和服务端存储2份相同的model和api定义.Feign在RestTemplate的基础上对其封装,由它来帮助我们定义和实现依赖服务接口的定义.Spring Cloud Feign 基于Netflix Feign 实现的,整理Spring Cloud Ribbon 与 S

【第三章】声明式服务调用(Feign)

当我们通过RestTemplate调用其它服务的API时,所需要的参数须在请求的URL中进行拼接,如果参数少的话或许我们还可以忍受,一旦有多个参数的话,这时拼接请求字符串就会效率低下,并且显得好傻.那么有没有更好的解决方案呢?答案是确定的有,Netflix已经为我们提供了一个框架:Feign. Feign是一个声明式的Web Service客户端,它的目的就是让Web Service调用更加简单.Feign提供了HTTP请求的模板,通过编写简单的接口和插入注解,就可以定义好HTTP请求的参数.格

SpringCloud系列十:使用Feign实现声明式REST调用

1. 回顾 前文的示例中是使用RestTemplate实现REST API调用的,代码大致如下: @GetMapping("/user/{id}") public User findById(@PathVariable Long id) { return this.restTemplate.getForObject("http://microservice-provider-user/" + id, User.class); } 由代码克制,我们是使用拼接字符串的方

springcloud之Feign实现声明式REST调用

Feign是Netflix开发的声明式.模板化的HTTP客户端,可帮助我们更加便捷.优雅的调用HTTP api.spring cloud对Feign进行了增强,使Feign支持了Spring MVC注解,并整合了Ribbon和Eureka,从而让Feign的使用更加方便:只需要创建一个接口,并在接口上添加一些注解,代码就完成了,Feign支持多种注解,子嗲的或者JAX-RS注解等. 添加maven依赖: <dependency> <groupId>org.springframewo

Spring Cloud第七篇 | 声明式服务调用Feign

本文是Spring Cloud专栏的第七篇文章,了解前六篇文章内容有助于更好的理解本文: Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览 Spring Cloud第二篇 | 使用并认识Eureka注册中心 Spring Cloud第三篇 | 搭建高可用Eureka注册中心 Spring Cloud第四篇 | 客户端负载均衡Ribbon Spring Cloud第五篇 | 服务熔断Hystrix Spring Cloud第六篇 | Hystrix仪表盘监控Hy

005声明式服务调用Feign

1.POM配置 和普通Spring Boot工程相比,添加了Eureka Client.Feign.Hystrix.Spring Boot Starter Actuator依赖和Spring Cloud依赖管理 <dependencies> <!--Eureka Client依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>sprin