使える! 情シス三段用語辞典69「API」
常に新しい用語が生まれてくる情報システム部門は、全ての用語を正しく理解するのも一苦労。ましてや他人に伝えるとなると更に難しくなります。『情シスNavi.』では数々のIT用語を三段階で説明します。
一段目 ITの知識がある人向けの説明
二段目 ITが苦手な経営者に理解してもらえる説明
三段目 小学生にもわかる説明
取り上げる用語を“知らない”と思った人は、小学生にもわかる説明から読んでみると、理解が深まるかもしれません!?
一段目 ITの知識がある人向け 「API」の意味
API(Application Programming Interface)とは、外部のプログラムから処理を呼び出すことでシステムから結果を受け取る仕組みのこと。
外部のプログラムはシステムの仕様を知らなくてもシステムに影響を与えることなく処理させることができる。
以前はAPIといえば、DLLからの関数やCOMインターフェースとして機能を公開し、異なるプログラミング言語から呼び出せる「Windows API」が主流であったが、OSは同じでなければならない制約があった。
その後、Web2.0の盛り上がりと共に注目され、OSに依存せずに連携が可能となる「Web API」が使用されるようになった。当初はSOAPというプロトコルが用いられることが多かったが、http/httpsプロトコルのリクエスト/レスポンス方式でやり取りできるようになってから、呼び出し方が簡便になり、活用の場が広がった。
現在は次のことに活用が期待されている。
(1)外部システムの活用
かつて企業システムはその企業の業務に合ったシステムを自前で開発してきたが、近年の外部環境の変化の速さに加え、アジャイルなビジネスの立ち上げを求められるようになり、外部企業が提供するAPIを活用することでシステム構築をできるだけ簡便化するのが一般的となった。例えば自社のWebサイトで地図を表示する際は、Google Mapが提供するAPIを使用し、自社周辺地図を表示する。自社サイトではシステムを作りこむことなく地図を表示できる。Googleは一定数以上使用するユーザーに対して課金することで利益を上げることができる。
また、異なる企業が運営するSaaS同士がAPIによって連携するケースも増えてきている。例えば、勤怠管理システムと給与管理システムを利用している場合に、今まではCSVダウンロードで連携してきたが、SaaSが別のSaaSへAPIを提供することでリアルタイムにデータを連携させることができ、あたかも統合化されたシステムのように使用できる。
(2)エコシステムの形成
業界以外の企業に自社システムのAPIを提供することで、新規で参入する企業が革新的なサービスを創出し、業界が活性化することが期待されている。特に金融機関では2017年に銀行法等が改正され、金融機関にAPI提供の努力義務が課せられた。また、利用者が自身のアカウントID/パスワードを提供することなく、外部の事業者が金融機関から利用者の情報を取得できる「オープンAPI」の整備が進んだ。フィンテック企業と呼ばれる外部の事業者が金融機関からAPIで情報を取得して新たなサービスを開発し収益化するエコシステムの形成が期待されている。こうした現象を「APIエコノミー」と呼び、経済活性化の原動力として期待されている。
(3)マイクロサービスの実現
マイクロサービスとは、小さな処理単位に分け、それらを疎結合で連携するアーキテクチャのことで、APIが重要な役割を持つ。
システムを長く運用していると、改修に次ぐ改修で、ロジックが整理されないままブラックボックス化することがよくある。その間に担当者が何回も変わり、仕様書も残されていなくて、コードを読むにもグチャグチャでよくわからなくなってしまいメンテナンス性が著しく低下する。
そこでプログラムを小さな処理単位に分け、APIを使用して連携させることで構造を見える化し、改修による既存処理の影響を極力少なくしてメンテナンス性を向上させるマイクロサービスが近年注目されている。
二段目 ITが苦手な経営者向け
情シス野村さんと社長のある日の会話――
社長:野村さん、ちょっと
野村:どうしました?社長。
社長:わが社でも勤怠管理システムを導入しようと思ってね。
野村:いいじゃないですか。省力化だけじゃなく、勤務状況がリアルタイムでわかりますしね。
社長:今から導入するなら自社にシステムを構築するんじゃなくてクラウドを利用したいんだよね。本当は今使っているクラウドの給与管理システムと連動させたいんだけど、別のクラウドサービを使ったらそんなことできないよね。
野村:いや、今はクラウドサービスでAPIを提供しているところも多いんですよ。
社長:API?なんだそれは。
野村:外部からシステムの処理を依頼するための関数っていえばいいですかね。システムを知らなくても外部からAPIで呼び出せばシステムが処理をして結果を返してくれるんですよ。
例えば、私が今日2時間残業したことを勤怠管理システムに入力したら、給与管理システムの勤務日数と残業時間を自動で更新してくれるんです。給与管理システム、勤怠管理システムがAPIで連携されていれば、違う企業が運営するサービスでも実現できます。
社長:それだよ!求めていたのは。APIってのは最近よく使われているのかい?
野村:最近は自社で作りこむんじゃなくて使えるものは使わないと、変化に素早く対応できなくなってるんですよね。Google MapやTwitterもAPIを公開してるので、自社のサイトに地図やTwitterのタイムラインを表示させる、なんてこともできちゃいます。
社長:じゃあ、APIを使って自社で独自サービスを開発することもできるね。
野村:そうなんですよ。例えばフィンテックといってAPIを使用して金融機関のデータにアクセスして新しいサービスを打ち出す企業が注目されてます。自分も口座いっぱい持ってるんですけど、自分の銀行口座・証券口座をまとめてみて資産状況が一目で確認できるサービスとかもあります。そういうサービスって金融機関単独ではできないじゃないですか。外部の事業者が参入することで独創的なサービスがどんどん生まれて、業界を活性化させることが期待されているんです。
社長:APIが経済を生み出してるってことだね。
三段目 小学生向け
みんなの中にはお父さんやお母さんとLINEを使ったことがあるかな? お友達同士で連絡するときにも便利だよね。
みんなが使うときは、家族やお友達とお話をするために使ってると思うけど、実はもっといろいろなことができるんだ。
例えば、お年玉を預けておくために作った自分用の銀行口座の残高や利用明細をLINEから見ることができるサービスもあるんです。
いつも使っているLINEで簡単に残高を確認できて、いつお金を預けたのか、いつ使ったのかがわかれば便利だよね。
なぜそうしたことができるのかというと、LINEと銀行がお互いに簡単に使える機能を提供しているからなんだ。この場合は、LINEからメッセージが送られると、LINEから銀行へ、「この人の口座情報をください」と依頼する。
依頼された銀行は、LINEへ銀行口座の情報を渡し、その情報をトーク画面で表示する。
銀行やLINEは、相手がどんな仕組みになっているか知る必要はない。データをやりとりするだけでいいんだ。
このように自分の運営するサービスの機能を、外部から部分的に使えるようにする仕組みをAPIと呼んでいます。
このAPIを使うと、システム同士が簡単にやり取りすることができるんだ。
どうしてLINEや銀行がAPIを提供しているのかわかるかい? 運営するサービスをどんどんいろいろなことに使ってほしいからなんだ。
銀行口座の内容をLINEで表示できれば、口座を持っている人は便利になる。銀行は、口座を持っている人にもっと自分たちの銀行のサービスを使ってもらえるようになる。
LINE自身もいろいろなビジネスに利用してもらうことで、自分たちもビジネスのチャンスが増えるんだ。
APIを提供することで、便利なサービスや新しいビジネスが生まれる可能性が広がってくるんだよ。
さて、ご理解は深まったでしょうか?
【執筆:編集Gp 山際 貴子】