SpringでRESTful Web Service を使う

投稿者: | 2020年2月15日

Springの公式サイト、Getting Started での記述に倣って、RESTful Web Service を使用する機能を作成します。

https://spring.io/guides/gs/rest-service/

 

公式サイトにあるように、今回は以下のサービスにアクセスしてJSON形式のパラメータを取得します。

https://gturnquist-quoters.cfapps.io/api/random

アクセスすればわかるように、下記の様に入れ子構造になっているJSONメッセージを取得できます。

 

パッケージのダウンロード

Spring Initializrにアクセスし、”Artifact” 欄を “consuming-rest” とし、”Dependencies” に “Spring Web”を追加したうえで、Generateボタンでダウンロードします。

(Artifactはデフォルトの”demo”のままでも、各クラスのパッケージを適切に変更すれば動きます)

 

落としたzipは解凍して、Cドライブ直下に配置。

 

ドメインクラスの作成

JSONパラメータを格納するためのドメインクラスを作成します。

今回使用するJSONはこのように入れ子構造になっているので、2階層に分けてクラスを作成します。

 

“type”, “value” を格納するQuoteクラスと、”value”の下にある “id”, “quote”を格納するValueクラスです。

 

両方とも、@JsonIgnorePropertiesというアノテーションが使われています。

これは「JSON側に存在するが、それを扱うクラスには存在しない」パラメータがある場合、そのパラメータを無視する働きをします。

 

SpringBootApplicationクラスの編集

Spring Initializrに既に存在する ConsumingRestApplication クラスを、次のように編集します。

 

RestTemplate はJSONを処理するライブラリであるjacksonを使用し、データを読み込みます。

CommanLineRunner は RestTemplate によって対象URLからJSONパラメータを取得し、スタートアップ画面に結果を表示します。

 

実行結果

コマンドプロンプトで実行してみます。

mvnw spring-boot:run

すると、スタートアップ画面に、JSONの取得結果が確認できました。