【9/29まで】無料で3,500円分のビットコインをもらう »

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

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

第3回目の本記事では「APIとは何か」を解説していきます。

前回の記事 : 2 Python×ビットコイン自動売買 | Bitcoin自動売買の環境構築をしよう!

なぜAPIについて解説をするのか。それはビットコインの自動売買で、APIをスムーズに操作する必要があるからです。

Googleで「APIとは」と検索すると、以下のような解説が出てきます。

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

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

僕自身、プログラミングを始めたとき意味が不明でした。

そういうことを聞きたいんじゃないんだよな〜」と、かなり理解に苦労した記憶があります。

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

ビットコインの自動売買をするなら、APIは必要不可欠です。

APIを理解しておくと、他にも応用が利きます。今のうちに理解を進めておきましょう!

目次

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

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

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

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

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

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

Webアプリとは何かというと、PC版の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サイトにアクセスします。ブラウザというのは、Google ChromeとかSafariのことですね。

ゆえに普段アクセスするときは、見やすい形でWebページが表示されます。

でもWebページのもとになっているのは単なるHTMLです。だから、Pythonを使ってWebサイトにアクセスすると、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の辞書オブジェクト(=dict)に変換してくれます。

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

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

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

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

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

以上がAPIの解説でした。

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

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

あわせて読みたい
#4 Python×ビットコイン自動売買 | Coincheck APIを使って最新価格を取得しよう! こんにちは、はやたす(@hayatasuuu )です。 第4回目の本記事では「Pythonを使ってビットコインの最新価格を取得したい」と思います。 前回の記事 : #3 Python×ビットコ...
SNSに投稿して読み返す
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

フリーランス(Python)/クリプト投資家/YouTuber3.23万人&Udemy講師(案件獲得者/転職者複数)/ 好きなブロックチェーンはAvalanche(アバランチ)です

目次