【改名】ストックドッグ

金融系の会社で働くSEが株やPython、その他諸々について書いています。システムトレードもやってるよ!

APIの仕組みを学ぼう

APIPythonで扱おう

【開発環境】

windowsMacの方は、各自の環境に応じたコマンドを使用しましょう。

個人的には、 windowsはソースが少なかったりするので、仮想環境でLinux系を入れるなどしたほうが後々は楽かもしれません。

APIの仕組み

自PCからリクエストを送ったら、相手サーバーからレスポンスが返ってきて、そのレスポンスにJSONファイルが入っている、これがAPIの仕組みです。

APIを使いながら仕組みを見てみる

基本的には、curlLinuxのリクエストを送ることができるコマンド)でリクエストを送ったら、レスポンスに情報が入っています。

ちなみに、GETコマンドでも同様の結果が得られます。

マーケット情報が欲しければ...

$ curl https://api.bitflyer.jp/v1/getmarkets
$ GET https://api.bitflyer.jp/v1/getmarkets

[{"product_code":"BTC_JPY"},{"product_code":"FX_BTC_JPY"},{"product_code":"ETH_BTC"},{"product_code":"BCH_BTC"},{"product_code":"BTCJPY01SEP2017","alias":"BTCJPY_MAT1WK"},{"product_code":"BTCJPY08SEP2017","alias":"BTCJPY_MAT2WK"}]

ここをAPIの仕組みと合わせて解説すると...

自分のPCからhttps://api.bitflyer.jp/v1/getmarkets(相手サーバー)にリクエストを送っています。

相手サーバーは受け取ったリクエストを見て、レスポンスを返します。

そのレスポンスに相手の求めている情報を付与して返します。

今回で言うと、マーケット情報です。


では、相手サーバーはなぜ相手の求めている情報がわかるのでしょうか?

それは、URLに書いてあります。

今回だと、https://api.bitflyer.jp/v1/getmarketsというURLのお尻の部分のv1/getmarketsです。


もし、ここをv1/getboardにすると板情報を返してくれます。


このように、リクエストを送ると、相手サーバーはリクエストに応じたレスポンスを返してくれます。

これがAPIの仕組みです。

レスポンスの形式

ちなみに、レスポンスはjson形式です。

json形式は、APIでよく使われます。

ここでは特に解説はしないので、気になる方は調べてみて下さい。

と、言ってもPythonではJsonを辞書型として扱うので対して気にする必要もなかったりします。

レスポンスを受け取る時

jsonファイルに保存したい場合はリダイレクトしてあげる。

curl https://api.bitflyer.jp/v1/getmarkets > getmarkets.json
cat getmarkets.json

と、こんな感じですが、毎回、curlするのも面倒なので、Pythonで書いてしまいましょう。

ということで、次回はHTTP Public APIを使ってみようです。

システムトレードやろうよ 〜目次〜

www.stockdog.work