背景
最近、Webアプリケーション等で、APIが公開されているものが増えてきた印象があります。
この、APIが公開されることの意味が最近までよく分かりませんでした。
「皆がAPIAPI言うけど何がそんなに嬉しいの?APIって美味しいの?」という方に向けて、APIの概要と活用方法の事例を紹介したいと思います。
※あくまでも個人的な見解です
※技術分野に参入したての初心者様向けの内容ですので、戦闘力の高いお方は鼻で笑っていただいて結構です
APIを使用するメリットの1つとして、手動操作を簡単に自動化できる点があると考えます。
とあるWebアプリケーションをブラウザ経由で手動で操作していたのですが、操作を自動化する必要があり、その際にこのAPIという代物に出会いました。
Webアプリケーションシステムの概要
Webアプリケーションシステムの概要図です。

以下はWebアプリケーションシステムの振る舞いです。
- メッセージ入力欄に任意のテキストを入力できる
- 送信ボタンを押下すると、メッセージ入力欄の情報をサーバーへ送信する
- サーバーは受信したメッセージ内容をメッセージ受信環境に転送する
- メッセージ受信環境はサーバーからのメッセージ内容を受信する
よくあるとてもシンプルなWebアプリケーションシステムと考えていただければと存じます。
とある事情で、以下のような自動システムを作る必要がありました。
メッセージを入力する⇒送信ボタンを押下する⇒ちょっとだけ異なるメッセージを入力する⇒送信ボタンを押下する・・・
GUI操作そのものを自動化するRPA(ロボティック・プロセス・オートメーション)でもできそうだなとは思っていたのですが、たまたまAPIで自動化できるということを何かの記事で読んだことがあり、やってみようと考えました。
GUIとは?コマンドラインって?

GUI(グラフィカル・ユーザー・インターフェース)とは、人間が直観的にコンピュータ操作をするためのインターフェースのことです。
マウスでボタンをクリックするなどの操作はまさにGUIの恩恵です。
一方、コマンドラインとは、特定の文字列(コマンド)でコンピュータコンピュータを操作することを指します。
コマンドプロンプトやPowershellなどで操作コマンドを打ち込む行為が該当します。
最初は取っつきにくいかもしれませんが、慣れてくるとPC操作が早くなり効率的になります。
まずは以下3つを覚えるだけでも全然違います。
- 1階層下のフォルダへ移動:”cd フォルダ名”
- 1階層上のフォルダへ移動:”cd ../”
- フォルダ内にあるファイルを表示:”ls”
APIとは何なのか?
API(アプリケーション・プログラミング・インターフェース)とは、アプリケーション間を繋ぐインターフェースのことです。
実は、オンラインショッピングでマウスをポチポチしている裏側でこのAPIが活躍しています。
例えば、ユーザーがECサイト上でシャツを購入する操作をGUI経由で行ったとします(以下、図中①)。
すると、図中②のような情報が生成され、サーバーへ送信されます。

普段は中身が参照できないのですが、中ではこのような通信をしています。
APIの情報があると何故嬉しいのか?
APIの情報があると、操作の自動化が可能になります。
上の例ですと、BUYボタンをクリックする操作の内容が文字列に置き換わっています。
文字列であれば、コマンドライン操作が行えるということになります。
そして、コマンドライン操作はプログラミングできるということになります。
プログラミングできるということは、自動化が可能ということになります。
プログラミングと自動化の関係
コマンドライン操作をプログラミングすることで自動化できる、という点についてです。
コマンドライン操作は、操作内容をコマンドとして打ち込むことができます。
先のように”シャツを購入する”という操作をコマンドとしてサーバーに送信することが可能です。
コマンド内容を複数まとめて記述できるとしたら、それは自動化ではないでしょうか。
プログラム{
コマンド:黄色いシャツを購入する
コマンド:黒いズボンを購入する
コマンド:茶色い靴を購入する
}
上記はとてもシンプル化していますが、シャツ&ズボン&靴を購入する一連の流れを一度の操作で実現しているイメージを表現したものです。
しかし、これだけだと実は物足りないのです。
また同じ処理をしたくなった際、上記プログラムを都度起動する必要があります。
定期的に同じものを購入すると考えた場合はどうでしょうか。
- 1か月毎に同じシャツとズボンと靴を購入する
- 在庫がなくなったらアラートを通知し、処理を終了する
例えなので、現実にこういう操作をするということではない点、ご了承ください。
プログラム{
以下の処理を繰り返す
もし、在庫がある場合
コマンド:黄色いシャツを購入する
コマンド:黒いズボンを購入する
コマンド:茶色い靴を購入する
1か月待機する
もし、在庫がない場合
コマンド:"在庫がなくなったので終了します"というポップアップを表示する
プログラム終了処理
}
このように、コマンドラインであればプログラミングして操作を自動化することが可能です。
大体、どのプログラミング言語でも「繰り返し処理」や、上記で言う「もし~だったら」という判定処理を記述することが可能です。
まとめ
APIとは、コンピュータ間が通信するために必要な情報であり、このAPIが公開/利用可能である場合、操作の自動化が可能になります。
皆さんが利用しているシステムのAPIが公開されているか、是非確認してみてください。