通过Feign远程调用第三方接口

使用OpenFeign实现接口访问 在微服务横行的年代,后端根据业务的不一样分成了很多单独运行的服务,比如在物联网中,根据业务拆分为定时服务、设备控制等服务。当前端想控制设备时,其请求首先到其对应的后端服务,后端服务再调用设备控制服务,才能实现业务需求。 阅读详情

远程调用第三方接口的有几种方法,常用就是用HttpClient、RestTemplate等组件,其实SpringCloud的Fegin组件也可以 用于第三方接口调用。

1、引入Maven插件

        <!-- feign核心包 -->
        <dependency>
            <groupId>io.github.openfeign</groupId>
            <artifactId>feign-core</artifactId>
            <version>10.4.0</version>
        </dependency>

2、编写Feign配置类,用于创建Fegin调用服务

import com.foresee.sznf.wxgzh.service.FeignYcqhActionService;
import feign.Feign;
import feign.Request;
import feign.Retryer;
import feign.httpclient.ApacheHttpClient;
import feign.jackson.JacksonDecoder;
import feign.jackson.JacksonEncoder;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;

/**
 * @author chenweifeng
 * @version 0.0.1
 * @date 2019/11/13 09:38
 * @since JDK 10
 */
@Slf4j
@Configuration
@Component
public class FeignConfig {

    private String baseUrl="xxxxxxxxxxxxx";

    /**
     * 初始化feign服务
     *
     * @return
     */
    @Bean
    public FeignYcqhActionService initFeignYcqhActionService() {

        FeignYcqhActionService feignYcqhActionService = Feign.builder().client(new ApacheHttpClient())
                .encoder(new JacksonEncoder())
                .decoder(new JacksonDecoder())
                .options(new Request.Options(1000, 3500))
                .retryer(new Retryer.Default(5000, 5000, 3))
                .target(FeignYcqhActionService.class, baseUrl);

        if (null != feignYcqhActionService) {
            log.info("feignYcqhActionService 创建成功!");
        } else {
            throw new RuntimeException("feignYcqhActionService 创建失败");
        }

        return feignYcqhActionService;
    }
}

3、编写Feign调用服务

import com.foresee.sznf.wxgzh.model.ycqh.*;
import feign.Param;
import feign.RequestLine;

import java.util.List;

/**
 * @author chenweifeng
 * @date 2019/11/13 10:59
 * 
 **/
public interface FeignYcqhActionService {

    /**
     * 获取列表
     *
     * @param id
     * @return
     */
    @RequestLine("GET /xxxxxxx?id={id}")
    YcqhActionReponse getList(@Param(value = "id") String id);
}

其中YcqhActionReponse是根据第三方接口返回的json去编写的,你也可以直接用JsonObject接收。

4、编写controller测试

import com.foresee.sznf.wxgzh.model.ycqh.*;
import com.foresee.sznf.wxgzh.service.FeignYcqhActionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

/**
 * @author chenweifeng
 * @date 2019/11/13 15:04
 **/
@Controller
@RequestMapping("/test/ycqh")
public class FeginYcqhController {

    @Autowired
    private FeignYcqhActionService ycqhActionService;

    /**
     * 获取大厅
     *
     * @param organid
     * @return
     */
    @ResponseBody
    @RequestMapping(value = "/getList", method = RequestMethod.GET)
    public YcqhActionReponse getList(String id) {
        YcqhActionReponse ycqhActionReponse = ycqhActionService.getList(id);
        return ycqhActionReponse;
    }
}

好的,这样就可以实现http请求第三方接口了!

FeignClient方式调用第三方接口 @Component @FeignClient(name = "TestClient", url = "${host}", path = "/xxx") public interface TestClient { @PostMapping("/test") DataVo test(@RequestBody DataReq req); } 阅读详情

相关推荐

使用feign远程调用接口

项目中开发中,经常会用到调用其他项目的接口 或者第三方接口的情况,以前经常使用的是spring 的restTemplate 或者httpClient,但是使用每次都需要写一些公共的调用代码,比较麻烦。 feign 则能够比较好的解决了这个问题,不是spring cloud 项目也可以使用。 一,是什么 feign 是Netflix 开发的声明式的http客户端,可以帮我们更加方便的调用http接口。在使用时候,就像调用本地方法一样,创建一个接口,然后在接口上添加一些注解,代码就可以完成了。spring

遇见未知的自己 3622

简单使用openFeign调用第三方接口

注入配置类用于对请求进行加密、添加鉴权参数等处理,在@FeignClient注解的configuration属性进行配置类指定,一个@FeignClient只能指定一个。ps:升级后如果开启多数据源出现循环引用问题,需要在启动类的@SpringBootApplication注解通过exclude属性指定多数据源配置类禁止。2、在启动类开启扫描feignClient修饰的接口的注解EnableFeignClients指定扫描路径。(2)、接口的返回值必须是指定类型的对象,使用map对象会引起类型不匹配异常。

sad555ssss的博客 6264

SpringCloud之Feign远程调用

目录`feign` 简介`feign` 实现远程调用 feign 简介 feign 是 netflix 开发的声明式、模板化的 http 客户端,它使得 http 请求变得更简单,feign 底层的使用的 http 通信框架是 HttpClient。feign 默认集成了 ribbon 和 hystrix,并和 Eureka 结合,实现了负载均衡。feign 被广泛应用在 springcloud 的解决方案中,是学习基于 springcloud 微服务架构不可或缺的重要组件 官方 github:https:

桐花思雨 1880

Feign 调用第三方接口示例,FeignClient参数动态配置url

Feign 调用第三方接口示例,FeignClient参数动态配置url

阳光 1万+

【云原生】Spring Cloud Alibaba 之 Feign 远程调用 实战

分布式系统下远程调用该如何选择?RestTemplate 与 Feign,Feign是最佳选择!

wanghuichen的博客 6444

从桨叶设计到电机匹配:手把手教你调出无人机最佳动力组合

本文系统介绍了无人机动力系统的核心匹配原则,重点解析了如何通过测试与数据分析,优化螺旋桨与电机的组合,从而显著提升系统力效与续航。文章提供了从参数解读、实战测试到深度调优的完整指南,帮助开发者解决电机过热、推力不足等常见问题,实现无人机性能最大化。

weixin_29305313的博客 242

Spring Boot 微服务中“调用第三方接口 → 数据加工 → 分接口返回“的完整架构实践

摘要 本文介绍了Spring Boot微服务中调用第三方接口、进行数据加工并返回给前端接口的完整架构实践。主要内容包括: 核心技术架构:采用DTO分层隔离、条件策略计算、接口拆分、黑名单过滤等9种设计模式实现功能解耦和安全控制 典型场景解决方案: 接口拆分策略解决URL时效性问题 多维度条件组合计算逻辑 前置校验快速失败机制 电商优惠计算实例演示: 三层DTO设计(Form/DTO/VO) Feign客户端调用实现 优惠策略条件计算 优惠券预览URL动态生成 该架构通过分层设计、策略模式和流程优化,实现了第

BADAO_LIUMANG_QIZHI的博客 388

R语言实战:非正态数据下的Scheirer–Ray–Hare检验全流程解析

本文详细解析了在R语言中执行Scheirer–Ray–Hare检验的全流程。当数据不满足正态分布假设时,该非参数检验是传统双因素方差分析的有效替代方案。文章从原理、R环境配置、数据准备、代码实现、结果解读到事后比较与可视化,提供了完整的实战指南,帮助研究者稳健地分析多因素实验设计中的主效应和交互效应。

cc789的博客 406

小白零基础|Docker容器JDK8使用Arthas排查Java接口性能卡顿(保姆级踩坑+解决教程)

服务部署:Docker 容器部署运行JDK:openjdk 1.8.0_111(容器默认JRE精简环境,无完整JDK工具)排查工具:Arthas 3.5.1核心问题:容器默认环境无法直接运行Arthas,存在大量兼容bugController入口耗时 → Service业务层耗时 → 底层子方法/循环/组装耗时 → 数据库SQL/Redis/Feign远程调用耗时不要用精简JRE镜像:线上调试、问题排查必须用完整JDK镜像,否则所有诊断工具失效容器内必须手动指定PID。

cxdn_czj的博客 261

Maxwell个人初学经验及资料分享

前段时间学习了课题组基于Maxwell所建立的模型,因为以前从来没有使用过,只是按照一步一步记忆了操作,但总觉得不熟悉,我想是缺乏对这个软件整体的了解,真正想上手只会这一个模型也没有办法扩展。但是我感觉这些有限元分析软件学习起来应该有一些共性,基于以前对COMSOL学习的一点经验,我就在官网和其他网站找了一些学习资源构成一条基础入门之路,也可能有更好的资源,仅代表个人观点做一下分享。以上就是本人对该软件初步学习的一点理解,跟着这样的操作不到一个星期就能初步的掌握。...

怎么又是萝卜的博客 5638

STM32的bootloader程序(通过串口更新STM32应用程序)

STM32的bootloader程序(通过串口更新STM32应用程序),对bootloader进行浅浅的学习

星羽空间 1万+

feign远程调用丢失请求头信息

Feign远程调用丢失请求头的解决办法

qq_32388061的博客 742

基于DO-178C/331的飞控软件研发环境的研究

本研究提出了一套基于DO-178C/331标准的飞控系统软件开发和验证框架。通过优化模型库的设计、代码生成配置和测试验证流程,显著提升了飞控系统软件的开发效率和安全性。未来的研究可以进一步扩展模型库的功能,以适应更复杂的飞控系统需求。

qq_41854911的博客 561

【微服务】SpringCloud-Feign远程调用

Feign是一个声明式的http客户端,作用就是帮助我们优雅的实现http请求的发送。

知足上进,不负野心。 4108

SoulX-FlashHead 加速实践,提升3倍。

SoulX-FlashHead 加速实践,提升3倍。

jacke121的专栏 224

计算电磁学(三)有限差分方法

有限差分方法(FDM)是一种数值处理方法,通过将偏微分方程变换为一组代数方程,通过求解代数方程组来得到原边值问题的近似值。由于有限差分法非常简单,所以也特别的稳定高效。其中时域有限差分方法(FDTD)是电磁分析中的常用方法。在计算电磁学中,常用有限差分方法(finite difference equations)来替代微分方程。一个有限差分法通常包括三个步骤将求解域划分网格用有限差分方程逼近给定的微分方程求解在给定边界条件和初始状态下的方程常用的网格模型方阵斜方阵三角阵圆形阵。

CCC_B的博客 1640

在springboot单体项目上使用feign远程调用接口

之前使用feign是在分布式项目上,从来没有在纯springboot项目上单独用过。这次有需求要用突然间还挺蒙的,百度了一圈终于会了。 在Java中远程调用接口,可以使用HttpClient也可以使用feign,我这里就说feign的使用。 先导入feign依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring

快敲代码去 4743

SAP物料主数据归档详解(物理删除)

顾问们的回答肯定的统一的不能,只能打上删除标记。物料设置好需要删除的物料号这里我们需要删除的物料是AG88,其中,若不选“考虑无删除标记的物料”,需要将需要归档的物料MM06打删除标记。平时在操作系统过程中经常会不小心创建出很多无用的物料主数据,但是系统只能通过MM06打上删除标记,但是物料最终在系统中还是可以查询到的。6、执行已设置变式的归档程序,执行完毕,点下图中的“Job”,每次执行完归档程序会产生两条作业。然后设置好开始的参数和假脱机的参数,三个都是绿灯就可以执行归档的操作,物理上删除物料主数据。

我小时候很黑的博客 5525

SpringCloud之远程调用Feign

一.Feign 在上篇文章中,我们使用了Ribbon的负载均衡功能,大大简化了远程调用时的代码: String baseUrl = &quot;http://user-service/user/&quot;; User user = this.restTemplate.getForObject(baseUrl + id, User.class) 这就是我们接下来要学的Feign的功能了。 1.1.简介 有道词典的英...

Armymans的博客 1万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

详解Feign远程调用

作为开发来讲,在实际开发工作中,我们遇到最多的,也是最重要的就是远程调用的关系。特别是在微服务发展的这么快的新时代。服务的粒度越来越小,服务与服务之间也多了很多远程调用的关系。接下来,我会以我自己写的cloud-demo为例,来详细讲讲Feign的远程调用问题。类型作用说明修改日志级别包含四种不同的级别:NONE、BASIC、HEADERS、FULL响应结果的解析器http远程调用的结果做解析,例如解析json字符串为java对象请求参数编码将请求参数编码,便于通过http请求发送。

博客 3665

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

项目总结:Feign进行远程调用

微服务之间难免会存在远程调用,在Spring Cloud中可以使用Feign进行远程调用,Feign是一个声明式的http客户端,官方地址:https://github.com/OpenFeign/feign其作用就是帮助我们优雅的实现http请求的发送。

weixin_46117680的博客 1603

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【Spring Cloud】如何使用Feign实现远程调用

如何使用Feign实现远程调用?Feign的使用步骤是哪些?看完本篇文章,相信你会得到答案

Sihang_Xie的博客 5779

SpringCloud-Feign远程调用

使用Feign的步骤:① 引入依赖② 添加@EnableFeignClients注解③ 编写FeignClient接口④ 使用FeignClient中定义的方法代替RestTemplate类型作用说明修改日志级别包含四种不同的级别:NONE、BASIC、HEADERS、FULL响应结果的解析器http远程调用的结果做解析,例如解析json字符串为java对象请求参数编码将请求参数编码,便于通过http请求发送支持的注解格式默认是SpringMVC的注解失败重试机制。

yrc1314的博客 1738

怎么用feign远程调用别人的接口_使用feign远程调用接口

项目中开发中,经常会用到调用其他项目的接口 或者第三方接口的情况,以前经常使用的是spring 的restTemplate 或者httpClient,但是使用每次都需要写一些公共的调用代码,比较麻烦。feign 则能够比较好的解决了这个问题,不是spring cloud 项目也可以使用。一,是什么feign 是Netflix 开发的声明式的http客户端,可以帮我们更加方便的调用http接口。在使...

weixin_39862871的博客 1192

Feign远程调用

Feign是一个声明式的http客户端,官方地址:https://github.com/OpenFeign/feign 其作用就是帮助我们优雅的实现http请求的发送.

me_1984的博客 1549
上一篇: weui 使用教程及问题解决方法
下一篇: Quartz定时器时间设置规则
CarsonBigData
博客等级 码龄9年 8316粉丝 166原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值