【IT用語勉強会】当たり前のように飛び交うIT用語を初心者なりに説明!今更聞けない《API》について解説します。

毎週IT用語系の記事を上げる!と自分の中で決めてからサボらず4週目!
先週の記事で来週も書いていますように!と願掛けをし、月曜が祝日だったため
稼働日数が少なく焦りましたが無事に筆?を取っています。笑

さて、今日の内容は【API】です。
IT系の業界にいる方や、何らかのシステム導入に関わっている方はこの言葉を
よく耳にするのではないでしょうか?
今日はなんとなく理解しつつも説明のしにくいAPIについて解説します。

APIとは

アプリケーションプログラミングインタフェース(API、英: Application Programming Interface)]とは、広義ではソフトウェアコンポーネント同士が互いに情報をやりとりするのに使用するインタフェースの仕様である。
APIには、サブルーチン、データ構造、オブジェクトクラス、変数などの仕様が含まれる。APIには様々な形態があり、POSIXのような国際標準規格、マイクロソフトのWindows APIのようなベンダーによる文書、プログラミング言語の標準ライブラリ(例えば、C++のStandard Template LibraryやJava API(英語版)など)がある。
商業的に使われる狭義では、各種システムやサービス(ハードウェア、OS、ミドルウェアおよびWebサービス等)を利用するアプリケーションソフトウェア (Application) を開発・プログラミング (Programming) するためのインタフェース (Interface) である。こちらの意味では、システムやサービスから直接提供されないもの、例えば言語の標準ライブラリは含まない。
APIはアプリケーションバイナリインタフェース (ABI) とは異なる。APIはソースコードベースだが、ABIはバイナリインタフェースである。例えば、POSIXはAPIだが、Linux Standard Base (LSB) はABIである(LSBはいろいろな規定の集合なので、正確には「LSBには、ABIにまで踏み込んでいる部分もある」)。
引用元:フリー百科事典『ウィキペディア(Wikipedia)』

はい。はじめて聞いた方は…意味わかんないですよね。
簡単に説明すると…

APIとはアプリケーションプログラミングインタフェース
(英: Application Programming Interface)の略です。
なのでアプリケーションをプログラミングするための
インターフェースなんですが、プログラミングとはコンピューターの
作業手順を作ることで、インターフェースとは周辺機器などの装置と
接続することで交信などができるようにする装置や
ソフトウェアのことを言います!

つまり、『アプリケーションを操作するために使う装置』って感じです!
但し、ここで間違えてはいけないのがアプリケーションを操作するために
人間が操作するモノではなくて、システムがシステムを動かすための装置です。

前者で述べたものは「UI」と呼ばれるものです。
ユーザーインターフェースの略で、『ユーザー(人)が動作をするために
触る装置』なのでパソコンで言うとキーボードですが、
WEBサイトなどの「見た目」で言われることも多いです。

先に述べた「キーボード」と「見た目」では大きく異なるように
感じるかもしれません。

ここで言う見た目とはWEBサイトで動作をする際の使いやすさを言っており、
ネットショッピングで購入ボタンを押すという動作や、
マイページにログインをすると言う動作などの見た目がわかりやすいかどうか?
を意味しています。
つまり、ユーザーが実際に触って動作を行う装置です。

  • APIはシステムがシステムを動かす
  • UIはヒトがシステムを動かす

この違いがあることをお伝えしておきます!

では、話をもとに戻しますが、APIを説明する際にもっと分かりやすく言うと、
こんな例があります。

例:テレビゲーム

APIが公開されてる状態は『ゲーム機にコントローラーがさしてある状態』です。

ゲームをしようと思えばいつでもゲームができる状態です!

※他のシステムからそのシステムを操作することができる
※パソコンだったらキーボードがついている状態

一方でAPIが公開されていないとは『ゲーム機はあるけど
コントローラーはさされてない状態』です。

ゲームしようと思ってもゲームできないですよね!
※他のシステムからそのシステムを操作することができない

この説明は実は私が実際にしてもらった説明なんですけど(笑)

その他にもこんな説明を受けたこともあります!

例:通訳

APIは通訳のような役割りをしてくれます!
私たちが日本語を見る・聞く・書くことは割と一般的ですが、
世界にはたくさんの言語がありますよね!
今すぐドイツ人のAさんと話したり、フランス人のBさんと話すには
きっと翻訳アプリなどを使って
「通訳」してもらわないと語学に堪能な方以外は難しいと思います。

ここで言う「通訳」みたいな役割り(窓口)になってくれるのがAPIです。

弊社のSPALOで言うとこんな感じ▼

例:SPALO

『SPALOは報告書などの入力物をチャット形式で回答し超簡単に入力ができます。』


SPALOとLINE WORKSをAPIでつなげるとLINE WORKSに接続することができ、
LINE WORKS上 でチャットの操作をすることができます!

SPALOとTeamsをAPIでつなげるとTeamsに接続することができ、
Teams上でチャットの操作をすることができます!

異なるシステム同士をつなげるためにAPIが間に入ることで
「SPALOが〇〇したいって言ってるよ!」とLINE WORKSやTeamsに伝えたり、
「LINE WORKSが〇〇だって教えてくれたよ!」とSPALOに伝える
通訳の役割りをしてくれます。

まとめ

APIとは異なるシステムをつなげられる窓口であり、
API公開とは異なるシステムを連携させるために
情報を提示してくれている状態です。
近年、クラウド化が進み、SaaSと呼ばれるサービスが急激に増えました。
これまでひとつのシステムで様々なことを行っていた業務形態が
勤怠管理システム、営業支援システム、在庫管理システム…などのように
複数のシステムを用途ごとで使い分けて使用することが主流になってきています。
この背景から異なるシステムを連携するという場面も増えてきており、
「API」と言うワードが飛び交っているのではないでしょうか。
もちろんAPIがわかれば誰でも簡単にシステム連携ができるという
わけではありません。
エンジニアさんなどプログラミングができる方がAPIを活用し、
より業務で使いやすいように開発する。そんなきっかけとなっています。