はじめに
過去記事は「auカブコム証券のkabuステーションREST APIに関する記事一覧」。
44番目の記事で、ツールを統合したカレンダー登録ツールと、4本値の日付調整ツールから、RESTサーバーへ更新したチャートDBファイルを送信する。
ゴール
51番目、52番目の記事のPUSH APIから受信したチャートデータは重複をチェックしたが、今回のツールは、APIを実行する環境側をマスターとするため、毎回ファイル全体を送信して、RESTサーバー側にコピーを作る。
ベースとなるソース
v38のr10をベースに、v43のr15を作成する。
- MainChartCalendar_r10 -> MainChartCalendar_r15
- MainChartDataDaily_r10 -> MainChartDataDaily_r15
- MainChartDataHourly_r10 -> MainChartDataHourly_r15
実装
RESTサーバー側の修正は、「【kabusapisrv】自前のRESTサーバーを作成する」で対応する。
writeCalendar()がファイルに保存したListを戻り値で返し、execute()でRESTサーバー送信する。
カレンダーは直下なので、銘柄コードを空文字列""で送信する。
readCalendar();
readAllChartData(DIR_FILEPATH);
List<String> lines = writeCalendar();
RestClientUtil.postChartDb("", DB_FILENAME, lines);
日足や分足は、サブディレクトリ内なので、銘柄コードを渡す。
readChartDB();
readAllChart(DIR_FILEPATH);
List<String> lines = writeChartDB();
RestClientUtil.postChartDb(code, dbFileName, lines);
テスト
RESTサーバー側のコンソールで、RESTリクエストを受信して、ファイルが作成されることを確認する。
2022/10/13 19:46:42.988 ChartDbService.register(/ChartCalendar.db): writeCnt=723, totalCnt=723
2022/10/13 19:48:48.766 ChartDbService.register(9005/ChartData1d.db): writeCnt=679, totalCnt=679
2022/10/13 19:50:58.440 ChartDbService.register(9005/ChartData60m.db): writeCnt=505, totalCnt=505
2022/10/13 19:50:58.456 ChartDbService.register(9005/ChartData30m.db): writeCnt=985, totalCnt=985
2022/10/13 19:50:58.466 ChartDbService.register(9005/ChartData20m.db): writeCnt=929, totalCnt=929
2022/10/13 19:50:58.476 ChartDbService.register(9005/ChartData15m.db): writeCnt=1277, totalCnt=1277
2022/10/13 19:50:58.489 ChartDbService.register(9005/ChartData10m.db): writeCnt=1857, totalCnt=1857
2022/10/13 19:50:58.507 ChartDbService.register(9005/ChartData5m.db): writeCnt=5142, totalCnt=5142
2022/10/13 19:50:58.525 ChartDbService.register(9005/ChartData3m.db): writeCnt=5863, totalCnt=5863
2022/10/13 19:50:58.575 ChartDbService.register(9005/ChartData1m.db): writeCnt=21186, totalCnt=21186
追記:短いx分足から整数倍のy分足をマージしたDBデータをRESTサーバーへ送信する
v38.MainChartDataMigrate_r10はそのままv43.MainChartDataMigrate_r15を作成する。
v38.MainChartDataIntegrate_r10をベースに、v43.MainChartDataIntegrate_r15を作成する。
0件の場合、writeChartDB()ではファイルを削除しているため、RESTサーバーへも送信しない。
List<String> lines = writeChartDB();
if (lines.size() > 0) {
String dstDbFileName = String.format(DB_FILENAME, chartType + "_r10");
RestClientUtil.postChartDb(code, dstDbFileName, lines);
}
追記:ソースをarchiveブランチへ移動
最新版に移行し、もう使われることはないので、アーカイブする。
githubソース