Go langを使って単純移動平均を返すAPI Serverを作ってみた
Go langを使って単純移動平均を返すAPI Serverを作ってみました。
ローカル運用ですが、
http://localhost:8000/sma?code=1333&date=2018-08-07
でリクエストすると、下記のようなレスポンスが戻ってきます。
[ { "code": 1333, "price": 3820, "sma": 4084.2, "tstamp": "2018-08-07T00:00:00Z" } ]
とりあえず欲しい値は取れてます。
URLルータとディスパッチャのライブラリであるGorillaが理解しやすくかつ書きやすいです。サンプルコード読んでたら、多くのTutorial/Get Started系の記事で使われていました。
router := mux.NewRouter() router.HandleFunc("/sma", GetSMA).Queries("code", "{[0-9]+}").Queries("date", "{date}").Methods("GET")
これを足がかりに
- スクレイピングなどでファンダメンタルデータを集めてHeroku Postgresに投入。収集にはNode.js / Pythonを使う。
- Go langのAPI serverを立てて各種エンドポイントを用意する。
/api/edinet?code=1333&limit=30
とか/api/fundamental?code=1333
みたいな - PandasからAPI呼び出してDataframe化する
これでPandas使ってデータ分析する際に、データを揃える部分が簡略化できるはずです。
本当はバフェットコードみたいなデータ揃えてくれているサイトが、有料でもいいので1リクエスト0.01円とかでAPIサービス始めてくれると嬉しいのですがw
追記: githubにリポジトリ作りました。 github.com