概要
SpringBootで外部のAPIからデータを取得する際に、Rest Templateを使うことがあると思います。Rest Templateの使い方についてはKotlin + Rest TemplateでのHttpリクエスト(GET編)の記事を参照頂きたいのですが、今回はレスポンスが配列形式で来た場合にどのように対応したらよいか書きます。
前提
- 実装の言語はKotlinを前提とします。
- レスポンスはJsonを前提とし、以下のような配列形式で返ってくるものとします。
sample.json
[
{
"id": 1
"name": "test1",
},
{
"id": 2
"name": "test2",
},
]
対応
一度テキストで取得してからJsonをパースしても良いのですが、出来ることならObjectでレスポンスを取得したいです。配列形式のJsonをObjectでどう読み込んだら良いかとなると、StackOverflowのKotlin call java method with Class argumentに色々と対応方法が書いてあります。以下の通り、個人的にはArrayでくるんで受け取る方法が一番簡潔に書けるかなと思います。
sample.kt
return restTemplate.getForObject(uri, Array<SampleObject>::class.java).toList()