こんにちは、ミナピピン(@python_mllover)です。今回はAPIの概要とPythonでのAPIの叩き方を自分用にメモしておこうと思います。
APIとは?
APIとは、「アプリケーションプログラミングインタフェース( Application Programming Interface)」の略称でソフトウェアコンポーネントが互いにやりとりするのに使用するインタフェースを指します。
ひとことでいうと、APIとは「ソフトウェアの機能を共有すること」で、ソフトウェアの一部をWEB上に公開することによって、誰でも外部から利用することができるようになります。それによって、自分のソフトウェアに他のソフトウェアの機能を埋め込むことができるようになるので、アプリケーション同士で連携することが可能になるのです。
皆さんの身近なものだと、Twitterの連携して自分のツイートから性格などを診断するサービスはWebAPIを使った代表的な例です。他にもline@もAPI機能を使ったものですし、仮想通貨も取引所のAPIを使うことでBotを作り自動的に取引することなどもできます。
APIの特徴
上述したように、APIは自社のソフトウェアの一部の機能を他のソフトウェアでも使えるようにするものですが内部のコードまでは公開していません。
またセキュリティの観点から、使用方法についてもなどのルールも定められており、APIはこのような仕様やルールと一緒にまとめてAPIドキュメントとして、WEB上に公開しているのが一般的です。
なお、APIはWEB上で通信して利用することが普通なので「WEB API」と呼ばれることも多く、API=WEB APIというのが一般的になっています。
APIを使用するメリット
私たち一般ユーザーがサイトの提供するWEBAPIを使用できることで得られるメリットとしては以下のようなものがあります。
- 外部サービスと簡単に連携できる
- UXやセキュリティ性も向上する
- 機能作成の時間が大幅に短縮される
よくある身近にあるAPIを利用したアプリケーションだとツイッターなどのSNSで自動投稿したり、定期的につぶやくBOTみたいなものです。
実際にPythonでAPIを叩いてみる
それでは実際にPythonでAPIを叩いてみましょう。APIといいますが、基本的にURLを叩くだけです。以下のURLにアクセスしてみてください。
するとブラウザ上に以下のような感じの文字列が表示されます。(リアルタイムデータなので中身の数値や時間は変わります)
これであなたも「APIを叩く」ことができました。その結果がこのAPIレスポンスになります。これは、実は、「GMOコイン」という仮想通貨取引所の現在のビットコインの価格データを取得するAPIです。
自動取引プログラムなどでは、ここに表示される価格データなんかを自分のアプリに活用したりすることでアプリにAPIを組み込みます。これはGETリクエストを送って相手からデータを貰っているのでGET APIですが、自分からデータを送るPOST APIも存在しています。
APIのレスポンスはJSONという形式で送られてくるので、プログラミング言語上でJSONを操作して必要な情報を抜き出します。例えばPythonだと以下のように処理できます。
import requests # APIを叩く res = requests.get('https://api.coin.z.com/public/v1/ticker?symbol=BTC') # APIのレスポンスから欲しい情報(今回の場合はビットコインの現在価格)中身の数値を取り出す print('現在のビットコイン価格は', res.json()['data'][0]['last'], '円です')
企業側がAPIを提供する目的
APIを作る側としては自社サービスの機能をAPIとして公開することで、同じ特徴をもったサービスが開発しやすくなります。それによって、ある機能に特化させたり、さらに使いやすく一部の機能だけ改良することができ、その結果さらに多くのサービスが生まれ自社サービスの発展に繋がります。
またAPIでは他社のデータを使うこともできるので、同じ情報を様々な分野で活用してもらうことで、情報を分析することが容易になり、各分野に特化した分析をおこなうことができます。
そこから顧客の傾向や特徴を発見することで、イノベーションが生まれ、新しいビジネスが生まれるのです。反対にAPIを使う側は作りたい機能がすでにAPIで公開されているなら、同じプログラムを1から作る必要がないので開発時間を大幅に短縮できます。
こういった自社のノウハウを一部公開していくことで、新しいイノベーションを生み出そうとする試みをオープンイノベーションと言います。こういった企業が提供するAPIは無料で利用できるため、開発者側としては開発コストも大幅に削減でき、かつ効率的にアプリケーションを制作することができます。
APIは昔からある概念でしたが、AIやブロックチェーンを始めとしたITテクノロジーが加速的に成長していることなどから、近年改めて企業のビジネスを広く外部に提供するための接点や手段としてあらためて注目されています。
関連記事:【Python】移動平均を使った仮想通貨自動取引Botを作ってみる
関連記事:PythonでTwitter API を利用してBotを作る その①
コメント
[…] 暇人の研究室【Web技術】APIについての分かりやすい解説https://tkstock.site/2017/07/14/2017-07-14-065944/APIとは?APIとは、アプリケーションプログラミングインタフェース( Application Programming I […]
[…] ミナピピンの研究室【Web技術】APIについての分かりやすい解説https://tkstock.site/2017/07/14/2017-07-14-065944/ APIとは? APIとは、アプリケーションプログラミングインタフェース( Applicatio […]
[…] 関連記事:【Web技術】APIについての分かりやすい解説 […]
[…] ミナピピンの研究室【Web技術】APIについて実用例を踏まえて分かりやすく解説してみるhttps://tkstock.site/2017/07/14/2017-07-14-065944/ こんにちは、ミナピピン(@python_mllover)です。今回はAPIの概 […]
[…] 参照記事:【Web技術】APIについて実用例を踏まえて分かりやすく解説してみる […]