RestTemplateとは??
RestTemplateは、HTTPリクエストの同期ブロッキングクライアントの実行であり、それはHTTPクライアントライブラリに基づいて、よりシンプルで簡単なテンプレートメソッドのAPIを使用するカプセル化されます。つまり、RestTemplateはパッケージですが、Javaアプリケーションの開発の基礎となる実装は、まだ一般的にHTTPクライアントの数の開発に使用されます。しかし、基礎となるHTTPクライアントライブラリを直接使用する相対的に、それはより便利で、高速で、主に開発効率を向上させることができます。
RestTemplateクラスは、HTTPメソッドのオーバーロードメソッドを提供することにより、HTTPベースのWebサービスにアクセスするための非常に便利な方法を提供します。あなたのWebサービスのAPIは、標準的なRESTfulスタイルの設計に基づいている場合、効果の使用はより完璧になります。
Springの公式ドキュメントとソースコードによると、Spring 5でノンブロッキングのReactive HTTPクライアントとしてWebClientを導入したので、RestTemplateは将来のリリースで非推奨になるかもしれませんが、Spring CloudなどSpringコミュニティの多くのプロジェクトにとってRestTemplateはまだ「重い依存関係」です。しかし、RestTemplateはSpring CloudなどSpringコミュニティの多くのプロジェクトで未だに重依存であり、RestTemplateはクライアントサイドのAPIラッパーなので、ノンブロッキングReactiveプログラミングの必要性はサーバーサイドほど高くありません。ノンブロッキングReactiveプログラミングの需要は、サーバーサイドに比べてそれほど高くありません。
Spring以外の環境でのRestTemplateの使用
JSONPlaceholder、無料のオンラインREST APIを提供するWebサイトで、このAPIを使用して、ネットワークリクエストやリクエストパラメータをテストすることができます。また、プログラムがいくつかのシミュレーションデータを取得する必要がある場合、シミュレーションイメージも使用できます。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.2.6.RELEASE</version>
</dependency>
テスト Hello world, RestTemplateを使用してGETリクエストを送信し、リクエストから得られたJSONデータの結果を出力します。
@Test
public void simpleTest()
{
RestTemplate restTemplate = new RestTemplate();
String url = "http://..com/posts/1";
String str = restTemplate.getForObject(url, String.class);
System.out.println(str);
}
サーバー側はJSONPlaceholderのWebサイトで、サーバー側のAPIを提供するのに役立ちます。 注意すべき点は、"jsonplaceholder.typicode.com/posts/1"というサービスのURLで、URLにpostsという単語がありますが、その英語の意味はHTTPではなく、投稿やお知らせです。投稿プロトコル。つまり、"jsonplaceholder.typicode.com/posts/1"は、要求されたデータは: id 1の投稿アナウンスリソースです。印刷結果は以下のようになります:
ここでは、RestTemplateの最も基本的な使い方を示します。RestTemplateは、連載記事として書いていきますので、注目してください。
Spring環境でのRestTemplateの使用
mavenの座標をspring-webからspring-boot-starter-webに変更します。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
RestTemplate構成をBeanとして初期化します。この初期化メソッドは、基礎となるHTTPクライアント実装としてJDK独自のHttpURLConnectionを使用します。後続の章で説明するように、基礎となる実装を Apache HttpComponents や okHttp などに切り替えることもできます。
@Configuration
public class ContextConfig {
//デフォルトでは、JDKはHttpURLConnectionを基本実装としている。
@Bean
public RestTemplate restTemplate(){
RestTemplate restTemplate = new RestTemplate();
return restTemplate;
}
}
@Resource //@AutoWired
private RestTemplate restTemplate;