Feignクライアントを使用したRequestLine
1. 概要
このチュートリアルでは、Feignクライアントで@RequestLineアノテーションを使用する方法を示します。 @ RequestLine は、RESTfulWebサービスに接続するためのURIとクエリパラメーターを定義するためのテンプレートです。
2. Mavenの依存関係
まず、 Spring Boot Webプロジェクトを作成し、 spring-cloud-starter-openfeignまたはfeign-core依存関係をに含めます。 ]pom.xmlファイル。 spring -cloud-starter-openfeign には、feign-core依存関係が含まれています。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>3.1.2</version>
</dependency>
または
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-core</artifactId>
<version>11.8</version>
</dependency>
3. @RequestLine in 偽のクライアント
@RequestLine Feignアノテーションは、HTTP動詞、パス、および要求パラメーターをFeignクライアントの引数として指定します。 パスとリクエストのパラメータは、@Paramアノテーションを使用して指定されます。
通常、Spring Bootアプリケーションでは、 @FeignClient を使用しますが、 springを使用したくない場合は、@RequestLineを使用することもできます- cloud-starter-openfeign依存関係。 @RequestLineを@FeignClientと一緒に使用すると、その依存関係を使用するとIllegalStateExceptionが発生します。
@FeignClientアノテーションのString値は、Spring CloudLoadBalancerクライアントを作成するために使用される任意の名前です。 要件に基づいて、URLやその他のパラメータを追加で指定する場合があります。
@RequestLineを使用するためのインターフェースを作成しましょう。
public interface EmployeeClient {
@RequestLine("GET /empployee/{id}?active={isActive}")
@Headers("Content-Type: application/json")
Employee getEmployee(@Param long id, @Param boolean isActive);
}
また、残りのAPIに必要なヘッダーを定義する@Headersも提供する必要があります。
ここで、このように作成されたインターフェースを呼び出して、実際のAPIを呼び出します。
EmployeeClient employeeResource = Feign.builder().encoder(new SpringFormEncoder())
.target(EmployeeClient.class, "http://localhost:8081");
Employee employee = employeeResource.getEmployee(id, true);
4. 結論
この記事では、@ RequestLineアノテーションがFeignClientで使用される方法とタイミングについて説明しました。
カスタムと同様に、このチュートリアルで使用されるすべてのコードサンプルは、GitHubでから入手できます。