![見出し画像](https://assets.st-note.com/production/uploads/images/88879725/rectangle_large_type_2_a0bfed58e1fab2733172a941fb3930e6.jpeg?width=1200)
J-Quants API ベータ版を使ってみて
APIに渡す引数の書式が色々
サンプルコードはcurlとpythonが用意されていて、便利でした。私自身はpythonしか使っていませんが、サンプルコードを繋ぐだけで概ね作成できました。簡単で良いですね。
引っかっかった点は、リフレッシュトークン取得、IDトークン取得、銘柄情報取得で、各々取得のコードが違うことです。
リフレッシュトークン取得API
import requests
import json
data={"mailaddress":"<YOUR EMAIL_ADDRESS>", "password":"<YOUR PASSWORD>"}
r_post = requests.post("https://api.jpx-jquants.com/v1/token/auth_user", data=json.dumps(data))
r_post.json()
IDトークン取得 API
import requests
import json
REFRESH_TOKEN = "YOUR refreshtokenID"
r_post = requests.post(f"https://api.jpx-jquants.com/v1/token/auth_refresh?refreshtoken={REFRESH_TOKEN}")
r_post.json()
銘柄情報 API
import requests
import json
idToken = "YOUR idToken"
headers = {'Authorization': 'Bearer {}'.format(idToken)}
r = requests.get("https://api.jpx-jquants.com/v1/listed/info", headers=headers)
r.json()
request.post()、requext.get() は基本的に同じなのですが、かっこの中は違っています。共通化して頂けると助かります。
返り値は、json形式で共通なのですから、引数の渡しもjson形式で渡すだけが良いです。
IDトークン取得 APIのサンプルコードようにテキストを繋げて送るだけの形が、個人的にはベタで分かり易く使い易いです。
pythonのrequestsのような便利なパッケージが無い言語でもjson形式で渡すだけならばコードが書き易いです。
まあ、私がhttpを理解すればいいだけなのですが(笑
APIの仕様書
仕様自体ではなく「仕様書ページの見方」で引っ掛かってしまいました。
![](https://assets.st-note.com/img/1665618176794-UOSKK0aejB.png?width=1200)
説明ページで仕様は「各メソッドの横にある”>”マークを押して詳細を展開」と書いてあり、メソッドの右横に”>”マークが在りました。
しかし、実際のメソッドの表示は、右に何もありませんでした。??です。
![](https://assets.st-note.com/img/1665618176401-veSxh08jQo.png?width=1200)
仕様書無し?
iPhonのようなAPIを目指してる?
さすがFinTechは凄いね!!
と素直に感心してしまいました。
なので仕様書が無いものと思いこんでコーディングしていました。
仕様書無しにするくらいだからそんなに複雑なエラー処理も必要ない構造なのだろうと推定し、簡単なトライアンドエラーでコードを書いていました。
そして今日、メソッドの左側のPOSTやGETの色付きマークの更に左に”>”が在るの分かりました。今まで単なるデザインだと思っていました。
これを押すと仕様書が表示されました。「仕様書レスAPI、すごいな!」と思っていたのでヘナヘナです(笑
確かに説明ページは「各メソッドの横にある」とだけ書いてあり、右も左も書いてありません。確かに「左」横に”>”は在りました。
説明に囚われずに素直に画面を観察しましょう、自分!ですね(笑
これなら”>”という文字記号ではなく「仕様」ボタンとかにしてあれば間違いが少ないのに!と思ってしまいました。