Espress API経由でREST APIから取得したJSONデータによるチャートの作成


Espressシリーズ (Quadbase)製品では、チャート、レポート、マップを作成し、ダッシュボードに個別に、あるいはグループ化して公開することができます。

これらのテンプレートはすべて、GUIアプリケーションによる手動作成、またはAPIによるJavaコードでのプログラム作成のいずれでも可能です。

Espressシリーズ製品は様々なデータソースを内部でサポートしていますが、それらはJavaオブジェクトをデータソースとして使用できるため、事実上あらゆるデータが製品のデータソースとなり得ます。

ここでは、Bitcoin/USDの価格チャートを作成し、「タイムズーム(time zooming)」機能を使ってデータを集約し、チャートに移動平均を追加して、そのチャートをファイルにエクスポートしています。全てQuadbase ERES APIを使用し、テンプレートを使用することなく行います。


この例では、チャートデータはREST APIからJSONフォーマットで取得します。

注: 簡略化のため、このブログのコードは例外処理を行いません。このコードは動作していますが、もしこのコードを自身のプロジェクトに使いたいのであれば、例外処理を追加することを推奨します。

クラスパスは

Java JDK 8+ – Oracle Javaを使用しましたが、好きなJavaを使用することができます。

EspressReport ES (ERES) 7.0 評価版については 当社にお問合せください。

注: Quadbase 製品(EspressChartEspressReport、Espress Dashboard(EDAB)、ERES)はすべて同じチャートエンジンを搭載しています。この例では、デフォルトでjson.jarライブラリが含まれているERESを選択しました。

ERES7.0からは、以下のjarが必要になります。

ERESOrganizer.jar – Quadbaseチャート・エンジン(その他)が含まれています。

json.jar – JSONをパースするためのJavaツールです。

qblicense.jar – Quadbaseのライセンス。評価版ライセンスも使用可能です。

まず、API URLからデータを取得する必要があります。バッファードリーダーを作成し、URLから取得した出力をStringBufferに読み込むだけです。

なお、今回は過去1825日間のビットコイン価格(USD)を1時間ごとに取得しているので、大量のデータを取得することになります。

URL apiurl = new URL(“https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=USD&days=1825&interval=hourly”);

BufferedReader in = new BufferedReader(new InputStreamReader(apiurl.openStream()));

StringBuffer sb = new StringBuffer();

String inputLine;
while ((inputLine = in.readLine()) != null) {
sb.append(inputLine);
}
in.close();

続きはこちらの原文を参照ください。

関連するトピックス: