Python×ビットコイン自動売買

#3 Python×ビットコイン自動売買 | APIとは?初心者でも理解できるように解説!

python-bitcoin-trade

こんにちは、はやたす(@hayatasuuu )です。

今回は「Python×ビットコイン自動売買」の第3回目ということで、APIについて解説していきたいと思います。

 

前回の記事はこちら

python-bitcoin-trade
#2 Python×ビットコイン自動売買 | Bitcoin自動売買の環境構築をしよう!こんにちは、はやたす(@hayatasuuu )です。 今回は「Python×ビットコイン自動売買」の第2回目ということで、Pyt...

 

なぜAPIの解説をするのか。

それは、ビットコインの自動売買をするためには、このAPIをスムーズに操作する必要があるからです。

GoogleでAPI とはと検索すると、以下のような解説が出てくるかと思います。

Application Programming Interface(アプリケーション プログラミング インターフェース)のことです。

 

世の中のサイトに申し訳ないですが、このような解説では何も理解できません…><

僕自身、プログラミングを始めたときは意味が不明でした。「そういうことを聞きたいんじゃないんだよな〜」と言った感じで、かなり理解に苦労した記憶があります。

 

そこで当記事では、APIについて分かりやすく解説していきます。

ビットコインの自動売買をするとなると、APIの利用は必要不可欠になりますので、今のうちに理解を進めておきましょう!

 

APIとは?初心者でも3分で理解できるように解説!

APIとはApplication Programming Interface(アプリケーション プログラミング インターフェース)のことです。

なんとなく「アプリケーションなのかな…?」と理解できますが、これだけ聞いてもイマイチ腑に落ちないですよね。

なので、ここから丁寧に解説していきます。

一般的なWebアプリ(Webサイト)の場合

APIの解説に入る前に、一般的なWebアプリやWebサイトを考えてみましょう。

Webアプリとは何かというと、例えばパソコンで開くYouTubeとかTwitterのことです。

https://twitter.comにアクセスすれば、Twitterアプリを利用できます。

このようにYouTubeやTwitterは、Web上で使えるアプリケーションですよね。なので”Webアプリ”と名前が付いているのも納得できます。

 

でもここで言いたいのは、そんな当たり前の話ではなくて、これらWebアプリは「誰のために作られているのか?」です。

当然ですが僕たちが使うので、Webアプリは「ヒトのために作られている」と言えます。

つまり、言うなれば”Application Human Interface”です。

インターフェースという言葉が曖昧ですが、接している部分とか表面みたいな意味だと思ってください。

なので”Application Human Interface”を直訳するなら、ヒトが接するアプリケーションってことですね。

 

ゆえに、Webアプリは”Application Human Interface”だと言えます。

※Application Human Interfaceなんて言葉は存在しません。勝手に僕が言っているだけです。笑

WebアプリとAPIの違い

Webアプリはヒトが使うためのアプリなので、”Application Human Interface”でした。

それに対して、APIは”Application Programming Interface”です。

  • Webアプリ : Application Human Interface
  • API : Application Programming Interface

 

つまり、APIというのはプログラムのためのアプリケーションになります。

例えばTwitterを使うとき、僕たちはhttps://twitter.comにアクセスして投稿に「いいね!」しますが、プログラムはURLにアクセスして「いいね!」します。

以上をまとめると、APIはプログラムから何らかの操作をしたり、データ取得したりするためのアプリケーションだといえます。

 

Pythonを使ったAPIアクセスの実例【スクレイピングと比較して解説】

といった感じでAPIについて解説しましたが、実例を見たほうが理解しやすいです。

ここではPythonを使って、①Webサイトへのアクセスと②APIへのアクセスを比較していきます。

※この記事はPython×ビットコイン自動売買シリーズの一つなので、Coincheck APIへのアクセスをおこなっていきます。

Webサイトにアクセスする場合

Pythonを使って当ブログ「テックダイアリー」にアクセスしてみたいと思います。

import requests


url = 'https://tech-diary.net'

r = requests.get(url)
print(r.text)

 

上記のようなコードを書くことで、Pythonから当サイトにアクセスできます。

※ここら辺が怪しい場合には、僕のYouTubeで公開しているスクレイピング入門の学習をオススメします!

 

僕たちはブラウザを介してWebサイトにアクセスするので、みやすいWebページで表示されますが、元は単なるHTMLです。

なのでPythonを使ってWebサイトにアクセスすると、サイトで使われているHTMLを取得できます。

※HTMLの内容が非常に長いので掲載は割愛します!

APIにアクセスする場合

今後はPythonを使ってCoincheck APIにアクセスしてみます。

公式ドキュメントを見ると、色々な機能が提供されていると分かるのですが、今回は試しにティッカー情報を取得してみます。

※口座を持っていなくても大丈夫なので、ぜひコピペして実行してみてください!

import requests

url = 'https://coincheck.com/api/ticker'

r = requests.get(url)
print(r.json())

 

スクレイピングのコードと比較すると分かるのですが、今回変わっているのはurlr.json()の2点だけです。

urlが変更されることについては、問題ないと思います。宛先を変更したいなら、それはURLを変更する必要があるからです。

 

一方で、最後のprint()で書かれている中身ですが、Webサイトのときはr.textだったのに対して、APIではr.json()になっています。

なぜr.textではなくr.json()なのかというと、それはAPIにアクセスして取得できるデータがJSON形式だからです。

つまり、WebサイトとAPIのアクセスで取得できるものをまとめると以下になります。

  • Webサイト : テキスト状態のHTML
  • API : テキスト状態のJSON

ここまで聞くと「JSON形式ってなんだよ…」という話になると思うので、実際の出力結果を見てみましょう。

{'ask': 4074342.0,
 'bid': 4072359.0,
 'high': 4293031.0,
 'last': 4071695.0,
 'low': 4050000.0,
 'timestamp': 1612663936,
 'volume': 5662.81601249}

 

これがJSON形式になります。

※「中身のデータが何を表すのか」については、次回の講義で解説していきます!

 

出力結果を確認すると、波カッコの中に{Key: Value}の形で値が格納されていることが分かります。

この形は、どこかで見覚えがあるのではないでしょうか…?

 

そうです、これはPythonの辞書と同じ形になっています。

APIにアクセスして取得した生身のデータは文字型(=str)ですが、r.json()のように書いてあげることでPythonの辞書オブジェクトに変換してくれます。

まとめ : WebサイトとAPIの比較

WebサイトとAPIアクセスの違いを、以下の表にまとめてみました。

Webサイト・WebアプリAPI
誰向き?ヒトプログラム
取得できるデータ形式HTMLJSON

 

WebアプリとAPIは、両方ともアプリケーションで、対象としているモノと取得できるデータ形式が違うということですね。

URLにアクセスする部分は同じなので、こう考えてみると意外と単純な概念なのかなと思います。

 

以上がAPIの解説でした。

今回は少し退屈な解説になってしまいましたが、次回からはPythonを使ってAPIを操作していきたいと思います。

少しずつ実装の部分が入ってくるので、ぜひ楽しんでいきましょう!

 

第4回目の記事はこちら

python-bitcoin-trade
#4 Python×ビットコイン自動売買 | Coincheck APIを使って最新価格を取得しよう!こんにちは、はやたす(@hayatasuuu )です。 今回は「Python×ビットコイン自動売買」の第4回目ということで、Pyt...

 

トップページはこちら

python-bitcoin-auto-trade
Python×ビットコイン自動売買 | 初心者でも理解できる入門講義『Pythonを使ったビットコインの自動売買って、どうやって実装するんだろう...。分かりやすく書かれている入門記事はないかな〜。』このような悩みを解決する記事になっています。Pythonを使ったビットコインの自動売買を学んでみたい人は必見です。...