在本教程中,我们将演示如何在 Feign 中处理异常。Feign 是微服务开发者的强大工具,它支持 ErrorDecoder 和 FallbackFactory 用于异常处理。
2. Maven 依赖
首先,让我们通过包含 spring-cloud-starter-openfeign 创建一个 Spring Boot 项目。spring-cloud-starter-openfeign 包含了它内部的 feign-core 依赖:
在本教程中,我们将演示如何在 Feign 中处理异常。Feign 是微服务开发者的强大工具,它支持 ErrorDecoder 和 FallbackFactory 用于异常处理。
首先,让我们通过包含 spring-cloud-starter-openfeign 创建一个 Spring Boot 项目。spring-cloud-starter-openfeign 包含了它内部的 feign-core 依赖:
有时在使用Feign时,我们需要在HTTP调用中设置请求头。Feign允许我们通过声明性语法简单地构建HTTP客户端。
在这个简短的教程中,我们将看到如何使用注解配置请求头。我们还将看到如何通过使用拦截器包含常见的请求头。
在整个教程中,我们将使用一个暴露REST API端点的书店应用程序作为示例。
我们可以轻松地克隆项目并在本地运行:
$ mvn install spring-boot:run
RESTful服务可能因多种原因失败。在本教程中,我们将探讨如何在集成REST服务抛出错误时从Feign客户端检索原始消息。
Feign是一个可插拔且声明式的Web服务客户端,它使编写Web服务客户端变得更容易。除了Feign注解外,它还支持JAX-RS,并且支持编码器和解码器以提供更多定制。
调用外部服务通过 REST 端点是一个常见的活动,通过像 Feign 这样的库使得这个过程变得非常简单。然而,在这些调用过程中可能会发生很多问题。许多问题都是随机的或暂时的。
在本教程中,我们将学习如何重试失败的调用并使 REST 客户端更具弹性。
首先,让我们创建一个简单的 Feign 客户端构建器,我们稍后将通过重试功能对其进行增强。我们将使用 OkHttpClient 作为 HTTP 客户端。此外,我们将使用 GsonEncoder 和 GsonDecoder 对请求和响应进行编码和解码。最后,我们需要指定目标的 URI 和响应类型:
Feign抽象了HTTP调用,并使其声明式化。通过这样做,Feign隐藏了底层细节,如HTTP连接管理、硬编码的URL和其他样板代码。使用Feign客户端的一个显著优势是使HTTP调用变得简单,并消除了大量的代码。通常,我们使用Feign来处理REST API的_application/json_媒体类型。然而,Feign客户端也可以很好地处理其他媒体类型,如_text/xml_、多部分请求等。
在本教程中,我们将学习如何使用Feign调用基于SOAP的Web服务(text/xml)。