本文目的:单独使用feign的相关依赖实现项目的http调用。

     现在的微服务项目不少都使用的是springboot+spring cloud构建的项目,微服务之间的调用都离不开feign来进行远程调用。那么我们一个服务需要调用第三方的服务的时候,我们常常可能使用httpclient或者restTemplate等客户端api来实现远程调用,其实我们可以在微服务没有适用spring cloud框架的情况下,想调用第三方服务,也可以通过feign组件实现http的远程调用。

1 添加相关依赖

        <dependency>
			<groupId>io.github.openfeign</groupId>
			<artifactId>feign-core</artifactId>
			<version>11.0</version>
		</dependency>
		<dependency>
			<groupId>com.netflix.feign</groupId>
			<artifactId>feign-jackson</artifactId>
			<version>8.18.0</version>
		</dependency>

2  创建feign的接口文件

feign的接口文件主要是通过@RequestLine注解+请求方式+第三方的接口子路径地址来注明需要调用的第三方接口路径,如下图2.1所示 IMarketDataOuterApi.java 接口

图2.1

 

下图2.2为在项目中调用IMarketDataOuterApi的cityList方法:

图2.2

 3  需要在spring容器中注册一个IMarketDataOuterApi的Feign包装过的一个IMarketDataOuterApi对象

如图3.1所示:

图3.1

创建IMarketDataOuterApi的feign接口时需要指定第三方请求根路径和feign的请求拦截器。

拦截器中可以对feign的请求头进行统一定制。如图3.2所示:

4  完成以上工作,既可以启动项目,直接调用接口方法就可以访问第三方服务了。

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐