APIとは「Application Programming Interface」の頭文字を取ったもので、ソフトウェアの機能の一部を別のソフトウェアやプログラム上で稼働できるように繋ぐ仕組みを意味します。
APIは様々なシステムに用いられているため、聞いたことはなくても実はAPIを使ったサービスやアプリを利用しているかもしれません。
例えば、あるWebサイトで店舗や企業の所在地情報に、略図ではなくGoogle Mapが表示されている場合があります。そのWebサイトでは、まるでGoogle Mapにアクセスしているときと同様に、地図を拡大したり場所を移動したりと、様々な操作が行えます。このようなことができるのも、APIの働きによるものであり、Webサイト上でGoogle Mapが提供しているサービスを利用できるよう連携させているからです。
もちろん、APIを提供しているのはGoogle に限りません。多くの企業がさまざまなAPIを提供しており、自社のプログラムを連携させた新しいサービスを生み出す動きが広がっています。
本記事では初心者の方に向けて、APIを活用してどのようなことができるのかに焦点を当て、APIの基礎から導入のメリット、基本的な使い方を説明します。
APIはApplication Programming Interface(アプリケーションをプログラミングするためのインターフェース)の略で、 あるソフトウェアやプログラムが持つ機能や情報を、別のプログラム上でも利用できるように繋ぐ仕組みです。ここでのインターフェースとは、「つなぐもの」という意味です。
先に挙げたGoogle Map以外にも、AmazonやTwitterをはじめとする多くの企業も自社の開発したプログラムの機能を別のプログラムでも利用できるように、APIを公開しています。
身近な例としては、郵便番号検索サービスや宅配便の追跡サービスなどが容易に想像できるのではないでしょうか。また、ECサイトでのクレジット情報の入力や決済サービスも、APIを用いてECサイトに連携させたカード会社のプログラムによって行われています。
このように、APIを利用してプログラムの機能を連携させることをAPI連携と呼びます。
他社の有用なプログラムの機能を自社のプログラムにAPI連携させれば、手軽に新たな機能を持たせられるため、ユーザーはプログラムの提供者がどこであるかを意識せずに、スムーズに目的を達成できるようになりました。つまり、APIの登場によって、多くの顧客により良い価値を提供できる環境が整いつつあります。
APIが異なるソフトウェアやプログラムを連携させるプロセスが、「リクエスト」と「レスポンス」です。
下図はAPIの1種であるWeb APIの仕組みの模式図です。APIの利用者がAPIを呼び出し(リクエスト)、データを取得(レスポンス)するのが、Web APIの基本的な仕組みです。
レストランに例えてみましょう。客がレストランに入り、スタッフに料理を注文します。スタッフはその注文をシェフに伝えます。シェフは料理を作り、スタッフが客のところに届けます。
この例において、客に相当するのがAPIの利用者、スタッフがAPI、そしてシェフに相当するのがAPI提供元のサーバーです。APIに注文(リクエスト)することで、サーバーから出されたデータや情報が、APIを通じて利用者に届けられます(レスポンス)。
APIの提供者は、プログラム内のすべての情報やコードではなく、外部のユーザーが利用できるようになっているデータのみを公開しています。APIの利用者から寄せられるリクエストに対し、何をレスポンスするかはAPI提供者が決定します。
APIの利用には、APIキー(特定のAPIを利用するための識別子)が用いられます。
APIの利用希望者は提供者に利用を登録し、許可されればAPIキーが提供されます。
APIの提供者は、APIキーを通じて、特定の信頼できるクライアントグループだけをサーバーのリソースにアクセスできるようにしています。そうすることでコール数を制限し、セキュリティを確保しているのです。
APIは利用する人にとっても、提供する人にとってもメリットがあります。利用者・提供者それぞれに分けて見ていきましょう。
API利用者のメリットは以下の3つがあります。
APIを用いて複数のソフトウェアを組み合わせることで、ユーザーにより良い顧客体験価値を提供できます。例えば、旅行情報を提供するWebサイトに、航空会社が提供する航空券の購入機能を搭載すれば、別のWebサービスに移動せずとも顧客は航空券を購入できるようになり、利便性は大きく向上するでしょう。
APIを活用すれば社内のリソース不足を補え、生産性も向上します。例えば、自社でソフトウェアを開発している場合にAPIを活用すれば、プロセスを簡略化できることは容易に想像できるでしょう。その分、開発コストを削減でき、業務の効率化も見込めます。
自社の提供するサービスに十分なセキュリティレベルを期待できない場合であっても、既存のプログラムと連携すれば、セキュリティレベルを高められる可能性があります。例えば、自社のWebサイト内でチケットを販売する場合に、クレジット決済を導入するためには、セキュリティレベルの高いシステムを設計・開発しなければなりません。しかし、クレジット会社の提供する既存のAPIを利用すれば、APIを組み込むだけで高いセキュリティレベルでの運用が可能になります。
API提供者は自社が開発したプログラムを公開することによって、主に以下3つのメリットを得られます。
APIは有償と無償の2種類があります。Google Mapの場合であれば、一定数までは無償で利用でき、無償枠を超えたら従量課金というシステム設定がされています。このように、APIによって自社プログラムの一部機能を他社に有償で提供すれば、API提供者にとって大きな収入源となるでしょう。
APIの公開によって自社サービスを利用する企業が増えれば、ユーザーが増加するため顧客基盤が拡大します。その結果、従来はリーチできなかった層にもリーチできるようになるでしょう。
また、APIを通じて別の企業と連携を進めることで、新規市場の開拓や新サービスの提供にも繋げられます。
オープンイノベーションとは、組織外部の知見を取り入れ、組織内のイノベーションを加速させようという考え方です。
APIを公開すると、多くの人や組織がそのプログラムを活用できるようになるので、新規サービスの開発・展開が期待できます。その結果、社会全体のイノベーション推進に寄与できるでしょう。
APIにはさまざまな種類があります。その関係をおおまかに図示すると、以下のようになります。
APIには、HTTP方式でWebサーバーと通信を行うWeb APIと、Webの利用を前提としないWeb API以外のAPIがあります(Web APIについては以下の章で説明します)。
さらにAPIは公開する対象と範囲によって以下の4種類に分類されます。
パブリックAPIとも呼ばれます。一般に公開され、外部利用が可能なAPIです。無償のものと有償のものがあり、有償の場合は、従量課金制やサブスクリプションサービスとして提供されています。
顧客基盤を拡大したり、ベンダーや他企業との協働を進めたりしたい場合にOpen APIを利用します。
APIの公開範囲を自社と提携関係にある企業に限定する手法です。パートナー企業との協働や連携を促進したい場合に用いられます。
公開を社内だけに限定したAPIです。基幹システムと部署のシステムを連携する際などに用いられます。外部からアクセスできないように強固なセキュリティ対策がなされています。
1つのAPI連携によって、複数のWebアプリケーションや他のAPIにアクセスできる手法です。さまざまなアプリケーションのデータを要する場合には、データを管理しやすい複合APIを利用します。
続いて、APIとWeb API、さらにWeb APIの実装方式であるREST、SOAPついて整理します。
Web上で公開されていて外部からプログラムの呼び出しができるAPIをWeb APIと呼びます。
基本的には、APIは利用者と提供者の言語が同一であることが前提となっているため、プログラムで用いる言語が異なる場合は利用できないケースが生じます。しかし、Web APIでは言語が異なっていても通信できるHTTP/HTTPS方式が採用されています。また、Webブラウザにも利用でき、汎用性が高い特長があります。
WebAPIの実装方式としては、次に説明するRESTとSOAPが主流となっています。
REST(Representational State Transferの略)とは、Webサービスの設計モデルのひとつで、アドレス可能性(Addressability)、ステートレス性(Stateless)、接続性(Connectability)、統一インターフェース(Uniform Interface)の4つの原則から成り立っています。
・アドレス可能性(Addressability)
全ての提供情報はURIで表されるアドレスを有していること
・ステートレス性(Stateless)
セッションで伝えられる情報は、それ自体で完結すること
・接続性(Connectability)
伝える情報に別の情報へのリンクを含められること
・統一インターフェース(Uniform Interface)
情報の伝達は定義されたHTTPメソッドで行われること
現在は、WebサービスのURLにHTTPメソッドでアクセスし、データをJSONで受け取る方式が主流となっています。
HTTP上で動作するアプリケーションを構築する方法としては、REST以外にSOAP(Simple Object Access Protocol)がありますが、今日ではよりコードが少なく簡便なREST方式が使用されることが多くなっています。
RESTの設計原則に基づいて作られたAPIを「REST API(RESTful API)」と呼びます。
APIの導入は、他社のAPIを自社Webサイトに実装することから始めましょう。ここでは実装までの手順を4段階に分けて説明します。
APIの提供元サイトに登録し、自社のビジネスに組み込みたいAPIを探します。サイト上では無償で利用できるAPIも多く紹介されています。APIの運用になれない間は無償APIの導入から検討しましょう。
APIキーとAPIシークレットキーを取得します。APIキーがID、シークレットキーがパスワードに相当します。共にAPIを安全に使うために必要なものです。
APIキー、シークレットキーを連携したいWebサービスやシステムに設定します。
設定が完了したら、APIドキュメントなどのリファレンスを参考にして実際に使い始めましょう。
APIドキュメントとは、APIを効果的に使用および統合する方法が記載された仕様書です。掲載された方法を参考に手順を進めれば、スムーズにAPIを実装できるでしょう。
マイクロサービスとはソフトウェアのアーキテクチャの種類です。用途や目的に応じて個別のサービスを複数作り、これらを組み合わせて大きなサービスを構築します。
ソフトウェアやWebサービスを設計・開発する際、従来はさまざまな要素を全体的に統合し、ひとつのサービスとして提供していました。
一方で、マイクロサービスアーキテクチャでは、全ての要素をゼロから準備しなくともすでにある機能を利用することもできます。このとき、各要素を連携させるのがAPIです。APIで各要素を連携させるため、後から新しい要素の追加を行う際もスムーズに簡単に行えます。
これらの特性を踏まえ、ソフトウェアやWebサービスを提供する企業では、従前のモノリシックーキテクチャからマイクロサービスアーキテクチャへの移行が進められています。
我々の身近なところでもAPIは使われています。APIの実装により、どのようなことができるかを簡単に見ていきましょう。
Instagram Graph APIを利用すると、Webサイト上にInstagramの投稿を埋め込み表示させることができます。単なる投稿の埋め込みでは、投稿内容が固定されてしまいますが、APIの実装時には、Instagramの投稿が更新されるとWebサイト上の埋め込み投稿も自動更新されます。
APIを実装するには、InstagramのProアカウントとFacebookページが必要です。Instagramとfacebookを紐づけ、Facebook管理者ページ内からInstagram Graph APIのアクセストークンを取得します。これらの準備が整得たうえでWebサイトに埋め込みましょう。
Twitter APIを利用すると、投稿やリツイート、フォロー、いいねなどTwitterのアプリ上と同じ操作の他にも、アプリではできない自動投稿も可能になります。
Twitterの初期設定では一般情報の利用、つまりツイート情報の取得のみが許可されています。他の機能を持たせるにはアプリケーション登録が必要ですので注意しましょう。
YouTube APIは3種類あります。
YouTube Data APIは、動画の再生数や、いいね、コメントなど動画に関する情報を取得できるAPIです。また、YouTube Analytics and Reporting APIsではYouTubeの動画の統計情報を取得できます。YouTube Player APIでは、Webサイト上にYouTubeの公式動画プレイヤーを埋め込んで表示できます。
YouTube APIの認証情報の設定は、Google Cloud Platformから行いますので、事前にGoogle アカウントを取得しておきましょう。
Messaging APIを利用すると、応答メッセージやプッシュメッセージ、スタンプの送信のほか、ユーザー情報の取得やリッチメニューの表示など様々な機能を持ったボットを作成できます。
Messaging APIを実装すれば、ユーザーとの双方向のコミュニケーションが実現します。
Messaging APIを実装するには、LINE DevelopersコンソールでMessaging APIのチャネルを生成してボットを作成し、LINEプラットホームのチャネルに紐づけましょう。さらに、チャネル生成によって作成されたLINE公式アカウントをボットモードで運用してください。
Amazon APIは、Amazonの商品情報を取得できる機能を有しています。大口出品者向けのMWS(Marketplace Web Service)APIと、アフィリエイター向けのPA(Product Advertising) APがあります。
MWS APは在庫や注文、支払い、レポートに関する情報をプログラムで管理できるAPIです。また、出荷のためのラベル作成プロセスの自動化や納品ステータスの管理など出品者にとって便利な機能を実行できます。
PA APIを利用すると、価格更新や在庫情報、商品イメージ、カスタマーレビュー、商品の説明がリアルタイムで入手できます。
これからAPIについて学ぶ方へ向けて、APIの基本を総合的に学べる書籍を紹介します。
著者 アレックス・モザド、ニコラス・L・ジョンソン(英治出版)
Apple、Amazon、Google など、自社だけでなく、他のプレイヤーと一緒にビジネスを構築するモデルがプラットフォームビジネスです。本書籍は、APIを活用したプラットフォームビジネスを理解する助けとなるでしょう。
著者 山本 陽平(技術評論社)
2010年に出版された書籍ですが、Web APIの基礎となる技術全体についてわかりやすく整理されています。Webの背景にある技術を理解したい人におすすめです。
著者 水野 貴明(オライリージャパン)
Web APIの効果的な設計・運用について理解できる書籍ですこれからAPIを設計したい人、APIを開発者の観点から理解したい人におすすめです。
APIを効果的に用いれば自社のサービスにはない機能を自社サービス内に実装できるようになります。これにより、より良い顧客体験の提供が可能となるでしょう。
一方で、APIは自社のビジネスを拡大したり、利便性を高めたりするものとして注目を集めています。導入を検討する企業は、自社の課題を見直し、どのようなサービスを組み込めば、より良い顧客体験を提供できるかを検討しましょう。
まずは、既存のAPIを取り入れることから始め、慣れてきたら自社のサービスをAPIとして提供してみましょう。APIの相互活用によって、新しいビジネスが生まれるかもしれません。
APIは利用の面でも、提供の面でも大きな強みを企業にもたらします。APIについて理解を深め、良質なUXの提供に繋げてください。