Spring

Spring BootでRestTemplateを使ってAPIを呼び出す方法

Spring BootでRestTemplateを使ってAPIを呼び出す方法をメモしておきます。RestTemplateを使うと、簡単にAPIを呼び出せます。

環境

今回呼び出すAPI

今回は、GETでリクエストするたびにランダムにSpring Bootの名言(?)をレスポンスとして返してくれるhttps://gturnquist-quoters.cfapps.io/api/randomを呼び出します。このAPIは、以下のようなレスポンスを返してくれます。

RestTemplateの使い方

依存性を追加する

まずは、build.gradleの依存性に以下を追加します。

レスポンスの型を定義する

続いて、レスポンスの型を定義したクラスを作成します。このクラスを作成することで、RestTemplateがレスポンス結果を各フィールドにセットしてくれます。

Quote.java

Value.java

RestTemplateを使ってAPIを呼び出す

あとは、以下のようにAPIを呼び出すクラス内でRestTemplateを使ってAPIを呼び出すだけです。簡単ですね。

今回は、GETでリクエスト(引数もなし)しましたが、RestTemplateでは他にもPOSTPUTDELETEメソッドが使えたり、リクエストヘッダやリクエストボディ、クエリパラメータを設定することもできます。

おまけ: RestTemplateをBean登録する

上記では、RestTemplateを使うクラスで直接RestTemplateをインジェクションしましたが、以下のようにRestTemplateをBean登録して使うこともできます。

直接インジェクションする方法だと、そのクラスが呼ばれるたびにRestTemplateインスタンスを生成してしまいますが、Bean登録する方法だと、Spring Boot起動時に1回だけしかRestTemplateインスタンスは生成されません。インスタンスを複数作成することを嫌う場合、Bean登録する方法がおすすめです。

まとめ

Spring BootでRestTemplateを使ってAPIを呼び出す方法でした。

参考リンク

-Spring

© 2024 Reasonable Code