2021.5.26

技術動向2020⑨

API

「API」 柏木亮二 ((株)野村総合研究所 金融イノベーション研究部)

情報サービス企業がデジタルビジネスに取り組むには、どのようなスキルや技術が求められるのか。
デジタルビジネスに関わるキーワードを取り上げて、有識者に寄稿していただいた。

※「DXビジネス全体像の可視化~情報サービス産業白書2020」掲載

1 API技術の概要・経緯

A)APIとは

API(Application Programming Interface)とは、ソフトウエアの機能を外部のソフトウエアが利用するための機能を呼び出すための手順や使用の規定である。APIはもともとコンピュータ上のOSOperating System)やアプリケーションが提供する機能を相互利用するための統一的な呼出手順を指していた。この規格化された呼出手順は「インタフェース」と呼ばれ、「アプリケーション」の機能を「プログラム」で呼び出して利用することから、これらの手順をAPIと呼ぶようになった。

近年、ブラウザ上で利用できる様々なWebサービスの登場に伴い、これらのWebサービスを「アプリケーション」とみなし、このアプリケーション間でAPI機能の提供・連携が進んでいる。このような「HTTPプロトコル」を通じてAPIを利用することを特にWeb APIと呼ぶ。昨今ではWeb APIも含めた意味でAPIと呼ぶことが多い。

B)APIの歴史とWeb APIの発展

APIは1990年代にデスクトップアプリケーションで利用が始まった。例えば印刷処理をする場合にそれぞれのアプリケーションが印刷処理を機能として個々に実装するのではなく、OSに準備された印刷機能を標準的に利用することによって印刷処理を実行するといった利用法である。このように共通化・標準化された機能が外部から利用可能なかたちで提供されていれば、外部のアプリケーション開発者は、その機能の詳細な中身を知らなくても、標準的な呼出手順さえ実装すればその機能が利用できる。このようなAPIの普及によって開発効率が大幅に向上した。また、APIが用意されていることで、外部の開発者による斬新で使い勝手の良いアプリケーションが開発されることで、多様なニーズを満たすサービスが生み出されるという効果もある。

近年、Webサービスでも機能の相互利用を可能にするWeb APIが急速に拡大している。さらにスマートフォンの急速な普及によってスマートフォン上で動くスマホアプリも数多く登場している。スマホアプリは端末側の処理の負荷を抑える意味もあって、サーバ側とWeb APIを利用して通信を行っている。このようにAPIWeb APIの普及・拡大とともに広く利用されるようになっている。

C)APIのメリット

このAPI(特にWeb API)拡大の流れのきっかけとなったのが2003年の米AmazonによるProduct Advertising APIであろう(当時、この機能はAmazon Web Serviceと呼ばれていた)。このAPIを使えば誰でもAmazonの商品を外部のサイトから販売し、その売上の一部を受け取れるようになった。当時はブログが急拡大していた時期でもあり、このProduct Advertising APIは幅広く利用され、結果的にAmazonの収益を拡大した。

もう一つAPIが重要な役割を果たしたWebサービスが、当初マイクロブログと呼ばれていたTwitterである。Twitter社は2006年からTwitterサービス上の投稿・閲覧・検索・ユーザ情報取得といった基本的な機能のほとんどをAPIで公開していた。そのため、Twitterを利用していた外部の開発者などがこれらのAPIを活用して、より使いやすさや見やすさを実現したクライアントアプリ(閲覧・投稿アプリ)を発表したり、Twitterに投稿されたデータを収集・分析する新たな周辺サービスが開発されたりした。

API公開には様々なメリットがある。一つはAPIの公開・共有によって自社ではリーチできなかった領域に新たなチャネルが生まれることである。Amazonの例で言えばそれまで自社サイト(amazon.com)に限定されていたチャネルが個人のブログという膨大なチャネルに広がったケースが挙げられる。

もう一つの効果としてオープン・イノベーションの拡大や効率化が見込めることである。Twitterサービスでは様々なクライアントアプリが登場し、ユーザの拡大に大きな貢献をした。さらにサードパーティが独自に開発した機能が人気を集めると、Twitter社はその機能を自らのサービスに取り込むことで、自社サービスの魅力を向上させるという効果も享受できた。

D)広がる社内システムでのAPI活用

また近年、APIの導入目的を外部への公開に限らないケースが増えている。多くの企業は社内に数多くの業務システムを保有しているが、それぞれのシステムの連携の難しさや、システムの保守・更新による作業負荷の増大が課題となっている。

そこで、大規模なコンピュータ・システムの機能のまとまりを「サービス」とみなし、それぞれのサービスをネットワーク上で連携させるソフトウエア開発手法として「サービス指向アーキテクチャ(Service-Oriented ArchitectureSOA)」が導入されてきた。そしてこのSOAの概念によって構築された個々の「サービス」間での連携にAPIの仕組みを適用することで、大規模なシステム内でも連携を容易にすることが可能になった。有名な例では世界的な動画配信プラットフォームであるNetflixは、社内の動画配信プラットフォームをAPI化しており、テレビ端末、スマートフォン、タブレット、PCブラウザといった異なった視聴環境での配信データの最適化や、おすすめ機能のもととなる視聴履歴データの共有が簡単にできる仕組みを構築している。

2 API技術の仕組み

現在幅広く活用されているWeb APIでのREST APIを例として、APIの仕組みの概要を説明する。REST APIとは「REpresentational State Transfer」の頭文字をとったもので、分散型システム環境下で複数のソフトウェアを連携させるための設計思想である。ここでは提供者・外部ユーザに分けて仕組みを見ていく。

A)APIで提供する機能・データの設計

APIを活用するにはまず提供する側が、自らのサービスのどの機能やデータをAPI経由で公開するかを決めることが必要である。一般的なWebサービスであれば、以下のような機能やデータを公開することになるだろう。

・ユーザ情報(IDなど)のデータ提供
・ユーザ情報の編集機能
・参照できるコンテンツのデータ提供
・編集できるコンテンツの編集機能・検索機能 など

REST APIでは、これらの提供する機能・データの操作をHTTPメソッドで定義された操作方法に統一することが特徴である。HTTPメソッドで用意されている操作方法の代表的なものは以下のようなものである。

GET:リソースの取得(データの参照)
POST:リソースの新規登録
PUT:既存リソースの更新
DELETE:リソースの削除

データの変更が可能なAPIに対し、外部ユーザにどの程度の権限を与えるかは重要な設計上の考慮事項である。

公開する機能・データが決まったら、今度はそのような機能・データの提供する形式を決める。この時に決める要素は大きく二つあり、一つはAPIの機能を呼び出すためのURIの設計と、提供するデータの形式である。URIとは「Uniform Resource Identifier」の頭文字をとったもので、参照するリソースや動作をアドレス形式で記述するルールのことである。

次に、提供するデータ形式を決める。ここでいう形式はコンピュータが判読するためのデータ形式のことであり、主にXMLExtensible Markup Language)やJSONJavaScript Object Notation)といった形式が指定される。

最後に提供する機能・データの提供範囲を決める。例えば時間あたりの利用回数の上限や、利用にあたってのライセンスの有無、また利用する際の課金の有無などである。提供側がこれらの設計を行いAPIは公開される。

B)外部ユーザのAPI利用

一方で公開されたAPIを利用する外部ユーザ(サードパーティと呼ばれることもある)は、公開されたAPIを通じて、そのサービスを利用することになる。

ユーザは公開されたAPIを利用するためのプログラムを作成する。例えばユーザ情報の一覧を取得するためのプログラムや、特定の住所を中心に表示される地図情報を取得するプログラムなどを記述する。その際、提供者側が用意したAPIの機能や規定に沿ったかたちでAPIを利用しなくてはいけない。

これらのプログラムを通じてユーザはAPI経由で機能やデータを利用する。そしてAPI経由で提供された機能やデータを自社のサービスに組み込むためには、その機能やデータに応じた作業も必要になる。例えばWebページで表示する場合はHTMLファイルに組み込むための書式を記述することが必要であり、またスマホアプリであれば表示のためのインタフェースの実装が必要となる。

またAPIの不適切な利用を未然に防止するための仕組みとして、近年では公開されたAPIを利用する際にはAPI利用規約への同意とユーザ登録を求められることが一般的である。

C)APIのセキュリティ

APIを公開するということは、そのシステムの内部データへのアクセスを外部に公開することであり、また自社サービスを利用しているユーザのユーザ情報を第三者が利用できるようにすることを意味する。そのため、APIを公開するにあたっては、利用者をきちんと識別できるトークンの発行・管理、盗聴を防ぐデータの暗号化、改ざんを防ぐ署名といったセキュリティ対策が必須である。現在ではOAuthOpne ID Connectといったオープンなセキュリティスタンダードに準拠したAPIセキュリティの実装が主流である。

また、APIの提供にあたっては、自社システムと外部クライアントの間にAPIゲートウェイを設けて、APIの利用状況の監視やAPIのリソース管理などを一元化する仕組みの導入が進んでいる。

3 オープンAPI

A)オープンAPIとは

ビジネス領域でもAPIへの取り組みが進む中、APIを広く外部に公開し、APIを通じてオープン・イノベーションを進めようという「オープンAPIOpenAPI)」というコンセプトが注目されている。

オープンAPIは特別な規格を表すものではなく、あくまでAPIの利活用の一形態を意味するものだが、昨今の経済のデジタル化への対応として自社の得意分野の機能と外部のスタートアップや他業界の企業とAPIを通じて連携することで新たなサービスを生み出そうとする動きである。

B)銀行のオープンAPI対応

日本でもオープンAPIへの関心は高まっているが、特に政策としてオープンAPIを推進している業界に銀行業がある。Fin TechFinance Technology)と呼ばれる新たなデジタル金融サービスの勃興によって、それまで一体化して提供されていた金融機能が、個々のより細かい単位の金融機能に分解されつつある。このような動きを「アンバンドリング(解体)」と呼ぶが、この細分化された金融機能がAPIを介してつながることで、より柔軟で使い勝手の良い新たな金融サービスが生まれつつある。例えば、個人向けの家計管理アプリなどが典型だが、銀行や証券会社などが持つ口座やクレジットカードの利用履歴といった情報をAPI経由で集約することで、利用者の資産状況の把握や資産運用のサポートといった新たなサービスが生まれている。

政府もこの動きを戦略的に重視しており、金融庁は2016年に「金融制度ワーキンググループ報告オープン・イノベーションに向けた制度整備について」で、銀行が積極的にオープンAPIに参画する法整備の必要性を唱え、その方針を受けて2017年の改正銀行法で銀行に対してオープンAPI整備の努力義務が課された。20204月時点で9割以上の銀行がオープンAPI導入を表明しており、官民あげてオープンAPI推進を行っている。今後の金融業界でのAPI利用の拡大が見込まれる。

4 APIエコノミー(APIエコシステム)

APIによって様々なアプリケーションが連結されることで新たなサービスが創出されるという期待も大きい。多様でオープンなAPIを縦横に活用することで新たなサービスが生まれ、そのサービスがまた新たなビジネスを生むという好循環を「APIエコノミー」と呼ぶ。また、APIを通じて様々な事業者、ビジネスが相互に関連しコミュニティとして成長していく様を「生態系」にたとえて、「APIエコシステム」と呼ぶこともある。

APIエコシステムの形成を目指す戦略的な動きも加速している。近年APIを活用した新ビジネスが数多く生まれている。代表的な成功例が配車サービスを提供するUberであろう。Uberではコアとなる配車サービスの基本機能(地図表示、ナビゲーション機能、メッセージのやり取り、決済など)を外部のAPIを活用することで実現しており、また周辺ビジネスであるレストラン予約やテイクアウトサービスなども他社のAPI経由でサービス化している(図表1)。

C024_1.png
【図表1 UberのAPIシステム】

また公開されているAPIの情報をまとめているサイト(ProgrammableWeb.comなど)も存在しており、様々な領域でAPIを通じて形成されたコミュニティが存在している。

#API#論文

この記事をシェアする
  • この記事はいかがでしたか?