2017-08-04 74 views
0

我有一個簡單的Spring引導項目,它使用控制器映射從我的項目中的類獲取硬編碼信息。Spring引導從外部API返回JSON字符串

例如,如果我運行請求:本地主機:8080 /主題,A JSON響應被返回條件是i先前創建

主題的對象的列表欲進一步藉此一個步驟,並有一個班誰的變量都通過調用該API,並解析響應填充:
https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=MSFT&interval=1min&apikey=demo

我相信這可以在Java中通過創建一個HTTP連接,並從輸入流中讀取數據來完成的,但就是這樣做的一個簡單的方法這與春季引導?我不完全確定這個程序的名稱,因此林無法找到解決方案在線

回答

1

由於您使用的是Spring Boot,因此使用Spring的RestTemplate是有道理的。它帶有幾個開箱即用的消息轉換器,並且默認使用Jackson作爲json內容。

Spring已經發布了一個很好的Getting Started頁面,用於使用RESTful Web服務。

但是,由該服務返回的json內容看起來不像它將很好地映射到Java對象,因此您可能必須將其反序列化爲一個HashMap以獲取所需的數據。

0

我做了一個嘗試創建這樣的事情。

https://github.com/StanislavLapitsky/SpringSOAProxy

的想法是註冊控制器接口。每個接口都映射到某個URL。對於接口,會生成一個動態代理(如果實現在本地不可用)。所以開發者只需調用控制器的接口方法。該方法被調用用於動態生成的代理。該代理使用RestTemplate調用遠程URL。它發送並接收JSON並將返回的JSOn反序列化爲從控制器返回的POJO對象。

您需要聲明合同 - 控制器接口加DTO交換數據以及映射以瞭解應爲每個控制器調用哪個URL。