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から入手できます。