今回はAPIのお話です!
APIってきくと何だか難しそうに思われる方もいらっしゃるかもしれません。
でも考え方としてはシンプルで面白いので、まずは難しく考えず、簡単にイメージするところから初めてみましょう!
APIとは?
まずは言葉の話ですが、APIのフルネームは以下の様になります。
【Applicaation】【Programming】【 Interface】の頭文字をとってAPI
そしてこれを日本語化するとこんな感じになります。
【アプリケーション】 の 【プログラム】を【接続する】
更にアプリケーションは「クラウドサービス」や「ソフトウェア」を指すので、ざっくりこうなります。
よーし色々なクラウドサービスやソフトウェアを繋げちゃうぞー!
では、色々なクラウドサービスやソフトウェアを繋げっていったい何をしたいんでしょう?
APIのメリットをまた昔話と織り交ぜてお話します!それでは・・
時を戻そう!
APIが主流ではなかった時代
これは昔話ですが、APIもクラウドサービスもあまり利用されてなかった時代はこんな感じでした
・ハードウェア・ソフトウェア・設備・設置場所、物理的な物も含め全て自前で用意しなければならなかった。
・出来上がったら、システムが問題なく動いているか、監視するための運用部隊も必要だった。
簡単なシステムだったとしても、裏側で作らなければいけない環境はすごく多いんです。
つまりゼロから作るしかないので、膨大な時間やコストが必要だったんです!
こんな感じで0から作るやり方を「フルスクラッチ」というんだぞ!知らなかった人は覚えておこう!
APIを利用する様になって変わった事
ここから先は今の時代の話。
今は、ものすごい数のクラウドサービスが存在しています。
経理が使う基幹系システムから、顧客管理、営業管理、決済、タイムカード、etc・・
欲しいサービスは検索すれば、大体存在してる事が解ります。
しかもこれらを全て繋ぐ事ができるとしたら・・どうですか?
ゼロから色々用意して開発しなくてもいいじゃん!
ってなりますよね。すなわち各メーカがそれぞれ提供する、完成済のシステムをAPIで繋げるだけで、1つのシステムを作れるんです!
こうして、クラウドサービスとAPIが主流になった事で、【作る開発】から【繋げる開発】に世の中が変わって来たんです。
アプリを動かしているサーバーは、各クラウドサービスの提供側が責任をもって監視しているので、管理者もいりません。
システムは完成しているので、繋ぐ仕組みだけを作ればよいので開発時間は大幅に少なくできます。
つまり、クラウドとAPIをうまく使う事で、システムが完成する時間やコストを、大幅に抑える事ができる様になったんです!
クラウドサービス+APIの注意点
しかしながら、こんな夢の様な話だけではなく、クラウドサービス(完成品)を繋いで使うやり方には、デメリットもあります。
SaaSの様なクラウドサービスはお客様1社1社に合わせた仕様ではなく、汎用的な仕様で設計されています。
つまり、お客様ごとに合わせたオーダーメードではありません。
基本はサービスの仕様に、お客様の運用ポリシーを変更してもらう事が必須になります。
したがって、仕様が合わないからといって個別にシステムの改修はしません。
ざっくりまとめると【フルスクラッチ】と【クラウドサービス】それぞれの特徴は以下の様になります。
【フルスクラッチ】はオーダーメードだけど高くて時間がかかる
【クラウドサービス】を繋げるのは安くて速いけど運用を合わせていただく事が必須
この違いは理解しておきましょう!
データ連携の考え方
連携の考え方としてはシンプルに【〇〇が行われた時に〇〇で行う】といった様な【トリガー】と【アクション】で考えます。
まずは、連携したい登場人物(アプリケーション)を全て洗い出します。
そして、どういう順【トリガー+アクション】で動かせば目的(要件)が達成できるか?
これが大事なポイントです。まずは難しく考えず、身近なもので考えてみましょう。
目的(要件) |
メールが届いたら、見落とさないようにSNSに通知したい |
登場人物 |
メール と SNSのメッセンジャー |
トリガー |
メールが着信したときに |
アクション |
SNSメッセンジャーに通知 |
まずは最初にこういうのを考える訳です。
簡単でしょ?まずは難しく考えないでね
API連携のイメージ
APIはざっくり言うと、URLみたいにアクセスして、実行できる【コマンド】みたいなものだと思って下さい。
このコマンドを使うと、以下の様にインターネット経由で、一部の許された機能を、外部から操作できるんです。
基本は、このコマンド(API)を【これが起きたら、次はこれを実行】みたいに、連続で動くように仕掛けて連携させています。
なので、連携させるには、トリガーのAPIとアクションのAPIをコントロールする【仲介役】の開発が必要となります。
つまり、【何が起きたら(トリガー)】と【何をするか(アクション)】を、この仲介役が順番に動かして自動化するんです。
この様に、連携をして【目的】を達成するんです!
API連携の注意点
API連携をする上で注意点があります。APIはメーカーが用意するオプションみたいなものなんです。

繋ぐだけじゃなく、目的を果たせるかもちゃんと確認しよう!
その他API用語
ここまでいかがでしょう?イメージ出来ましたでしょうか?余裕があったらこの辺も覚えておくとイメージがしやすくなります。
エクセルでもなんでもいいんですが、通常データを扱うときって、以下4種類の動作が基本になっていますよね?
・データの参照
・データの登録
・データの編集
・データの削除
これはAPIの世界でも同じで、それぞれ4種類の動作は、APIの世界では以下の様に呼びます。
・データの参照→【GET】
・データの登録→【POST】
・データの編集→【PUT】
・データの削除→【DELETE】
実際やってらっしゃる方から見ると、データの登録はGETでも出来るよ?っておっしゃる方がいるかもしれません。
でもこの辺りを説明をすると、一気に話を難しくしてしまうので、まずは上記の様な覚え方をするのがお勧めです!
経験上、大体のケースはこの考え方でいけると思います。
最後に
APIについてのお話はいかがでしたでしょうか。
今はエンジニアや、IT関係の人じゃなくても、社内で利用している、システムのユーザーってだけで、APIの打ち合わせに駆り出されるシーンをよく見かけます。
大分APIが標準化されてきたんでしょうかね。
APIについては、もっと話したい事が多いのですが、長くなりすぎると、眠くなるし読むのが大変なので、今日はこの辺で!
ZZZZ….
いや休憩は…取ろう。働き方を変えていこう