feign调用https接口_Feign支持Https协议

背景

最近在实现一个远程构建Docker镜像的功能。用户在前端页面触发镜像构建后,后端服务调用远程服务执行构建脚本。之后,后端服务循环访问 DockerHub 的REST接口(/v2/{image}/tags/list),判断目标镜像是否已经生成,从而更新前端构建状态。

后端服务使用Feign访问 DockerHub,DockerHub 接口使用的Https协议。

代码实现

FeignClient定义

在@FeignClient注解中指定feign client自定义配置。自定义配置中可以重写 feign.Client、feign.codec.Decoder、feign.codec.Encoder、feign.Contract 的实现方式。这些配置仅对当前的FeignClient有效。

@FeignClient(name = "docker-client", configuration = FeignHttpsConfig.class, url = "https://docker2.yidian.com:5000")

public interface DockerClient {

@GetMapping("/v2/{image}/tags/list")

ImageTags getTags(@PathVariable("image") String image);

}

FeignHttpsConfig定义

在FeignHttpsConfig中重写了Feign.Builder、feign.Client、Logger.Level 的配置。其中指定了feign.Client 所使用的SSLSocketFactory和HostnameVerifier。

下面对各个类做一下简单

背景 最近在实现一个远程构建Docker镜像的功能。用户在前端页面触发镜像构建后,后端服务调用远程服务执行构建脚本。之后,后端服务循环访问 DockerHub 的REST接口(/v2/{image}/tags/list),判断目标镜像是否已经生成,从而更新前端构建状态。 后端服务使用Feign访问 DockerHub,DockerHub 接口使用的Https协议。 代码实现 FeignClient定义 在@FeignClient注解中指定feign client自定义配置。自定义配置中可以重写 feign.Client、feign.codec.Decoder、feign.codec.Encoder、feign.Contract 的实现方式。这些配置仅对当前的FeignClient有效。 @FeignClient(name = "docker-client", configuration = FeignHttpsConfig.class, url = "https://docker2.yidian.com:5000") public interface DockerClient { @GetMapping("/v2/{image}/tags/list") ImageTags getTags(@PathVariable("image") String image); } FeignHttpsConfig定义 在FeignHttpsConfig中重写了Feign.Builder、feign.Client、Logger.Level 的配置。其中指定了feign.Client 所使用的SSLSocketFactory和HostnameVerifier。 下面对各个类做一下简单
经验分享 程序员 微信小程序 职场和发展