近年、アプリケーションやシステム開発において「API」というキーワードが頻出しています。何かは分からないけど、一度は聞いたことがある!という方も多いのではないでしょうか?
APIを意識することはなかなかないと思いますが、実は私たちが何気なく使っているサービスにも使用されていています。例えば、何かのサービスに会員登録やログインするときに、Googleアカウントや各種SNSのアカウントで代替ログインできるサービスを1度は使ったことがありませんか?実はこれもAPI連携によって実現しています。
そこで今回は意外と身近にあるAPIについて、基礎的な知識から、メリット・デメリット、利用時の注意点や活用事例を解説していきます。APIとは何か知りたい方や、プロダクト開発においてAPIの活用を視野に入れている方にはぜひ読んでいただきたい内容となっています!ぜひ最後までご覧ください。
APIとは、Application Programming Interface(アプリケーション・プログラミング・インターフェース)の略称です。APIに含まれるインターフェースという言葉には元々、「接点」「境界面」「橋渡し」のような意味があります。そして、IT用語としては、異なる機器やシステム同士を繋げる機能という意味を持っています。
APIを簡潔に言うと、自社の開発したアプリケーションに、他社の開発したアプリケーションの機能を埋め込むようなイメージです。または、ある機能・データを公開しているアプリケーションを呼び出し、その機能・データを使用したいアプリケーションに繋ぐ窓口とも言えます。
APIには固定の機能があるわけではなく、提供者が決めた仕様・ルールに沿って機能が提供されます。APIを利用してアプリケーション間で機能を連携・拡張することを「API連携」と言います。このAPI連携を行うことでスピーディーかつコストを抑えて、開発するシステムの機能拡張や利便性向上を実現することができます。
このような点から、APIを公開する企業・政府は世界的に増加しており、APIは「ビジネス同士を繋ぐ」とも言われています。APIの公開や連携・活用によって広がっていく商圏を「APIエコノミー」と言い、それぞれのサービスの強みを活かすことで、新たな価値創出への動きが活発化しています。
APIには目的・用途別にいくつかの種類があります。以下にAPIの種類をまとめていますが、WebAPI以外はメインに開発者の使用が想定されています。
・WebAPI
Webサービスベンダーによって提供され、HTTPプロトコルを通じてデータやサービスにアクセスするためのAPIを提供します。
例:Google Maps API、Twitter API
・ネイティブAPI
OS(オペレーティングシステム)やデバイスのメーカーによって提供され、特定のOSやデバイスに直接アクセスするためのAPIです。
例:Windows API、iOS SDK
・ライブラリAPI
特定のプログラミング言語やフレームワークで提供され、特定の目的に特化した機能を提供するために使用されます。
例:jQuery API、TensorFlow API
・ランタイムAPI
ランタイム環境や実行環境により提供され、特定のプログラミング言語が実行される環境で利用できる機能を提供します。
例:DOM API、 Ruby on Rails API
・データベースAPI
データベースベンダーよって提供され、データベースとのやり取りを行うための機能を提供します。
例:OCL API、ODBC API
Web APIのようにサーバアクセスを前提にしているAPIは、サーバの過度な負担を回避するため、アクセスの制限をかける必要があります。その制限のかけ方次第でAPIの提供方式はいくつかに分類されます。ちなみに、一般的にAPIと使う場合は、パブリック型やビジネス型のWebAPIを指すことが多いです。
【オープンなAPI】
・パブリックAPI
利用登録すれば利用可能な、広く公開されているAPIです。多くの人に利用してもらうことによってAPI提供者が利益を得る場合は、この方式が選ばれています。
・ビジネスAPI
特定の企業やビジネス向けに提供され、課金契約などの契約をすることで利用できます。独自にカスタマイズされたデータやサービスへのアクセスを提供することが目的とされ、APIの機能そのもので利益が出る場合、この方式が選ばれています。
・メンバーAPI
特定の組織や開かれたコミュニティのメンバーに対して提供され、組織内の開発者や利用者の、内部での情報共有や連携を目的としています。
【ユーザーが限定されたAPI】
・パートナーAPI
特定のビジネスパートナー(パートナー企業)に対して提供されるAPIです。通常、企業間での連携や共同作業を目的とし、これにより共通のサービス提供が可能になります。ただ、セキュリティ面や契約内容次第では、アクセスが一部制限されることがあります。
・クローズドAPI
一般の開発者や利用者にはアクセスが許可されず、限られた組織や利用者に対してのみ提供されます。また、セキュリティやプライバシーの観点から、厳格な制御が行われます。
・プライベートAPI
特定の組織や企業内での利用を目的として提供され、内部のデータやサービスにアクセスするために組織が開発し、利用者は組織のメンバーに限定されます。一般の開発者や利用者に対してはアクセスが許可されない点が特徴です。
API連携におけるメリットについて、代表的なものを挙げていきます。
・開発効率向上とコスト削減
APIを組み込むことで代替できる機能があれば、その分自社での開発を省略することができるため、開発にあたる時間やコストを削減することができます。リソースに余裕ができることで、その分を他の工程に充てることができ、開発効率も向上します。
・セキュリティ向上
例えば会員登録の機能を導入したい場合、自社でセキュリティレベルの高いシステムを開発するとなると時間もコストもかかり、ユーザーからの信用を得るのにも時間がかかります。そこで、一般的に使用されているGoogleアカウントやFacebookアカウントといった他社サービスとAPI連携を行うことで、時間やコストを抑えながら、一定のセキュリティレベルを保証し、ユーザーからの安心感を得ることもできます。
・ユーザーの利便性向上
セキュリティ面でも例に挙げた会員登録ですが、API連携を行えば他社サービス(GoogleアカウントやSNSアカウント)を使用してのログインが可能になります。ID・パスワードの設定や、その他情報の入力はユーザーにとって手間に感じてしまう部分でもあるため、会員登録を簡略化できるのは、ユーザーにとって利便性が向上します。
・最新情報の取得/活用
データ公開をしているサービスとAPI連携を行うことで、連携先の最新情報を簡単に取得することが可能になります。有名な例だと、ネットショッピングサイト大手のAmazonは、商品の最新情報や販売額などの情報を公開しています。このデータをもとにユーザーの購入傾向などを分析し、サービス戦略に活用することができます。
API連携には多くのメリットがありながらも、いくつかのデメリットも存在します。起こりうるトラブルをできる限り想定し、対応策を考えた上でAPIを利用する必要があります。
・アップデートや提供終了の可能性
API提供元企業が何かしらの事情でサービスのアップデートや提供を終了した場合、その機能は使えなくなってしまいます。代替サービスに移行できず、自社での開発もできない場合は、該当機能の停止や最悪の場合、自社サービスの存続が危ぶまれます。
・不具合や障害発生時に自力で解決できない
API提供元側で何かしらの不具合や障害が起きた場合、自社サービスに影響が出る可能性があります。しかし、自社側で対応することはできないため、場合によってはサービスを停止して復旧を待つことしかできません。
・従量課金制の高額請求やリクエスト回数制限
APIによっては、リクエスト回数に応じた従量課金制のものや、リクエスト回数そのものに制限がかかっているものがあるため、注意が必要です。
・APIキーとシークレットキーの利用方法
APIキーとシークレットキーは、私たちに馴染みのある言葉に言い換えるとIDとパスワードです。これらが第三者に流出してしまうと、データが書き換えられたり、流出するリスクがあります。そのため、APIキーとシークレットキーは推測されにくいものに設定し、共有は関係者の中でもできる限り最小限に、権限付与の範囲も慎重に選択する必要があります。
APIは様々な分野で幅広く利用されています。以下に代表的な例をいくつか挙げていきます。
【SNS】
・Facebook Graph API
Facebookが保有している情報を扱えるAPIで、データの取得や更新・投稿が可能になります。また、API連携している別サービスのアカウント登録の際に、Facebookアカウントを使用することも可能になります。
・LINE Messaging API
LINEで自動返信を行うなど、コミュニケーションツールとして活用されています。企業での活用としては、ヤマト運輸のお届け予定や不在連絡をLINEにて行なっている事例が有名です。
【金融・決済】
・Stripe API
ECサイトやアプリケーションにおいてオンライン決済処理を行うためのAPIで、クレジットカード情報の処理などを行います。
・Open Financial Exchange (OFX) API
金融系のアプリケーションで使用する、銀行口座やクレジットカードのデータを取得可能なAPIです。
【地理・気候】
・Google Maps API
アプリケーションで地図機能を提供したい場合にこのAPIを使用することで、位置情報確認や経路検索などが可能になります。
・Weather API
天気予報や気温、湿度など気象情報に関するデータを、Webサイトやモバイルアプリ、IoTデバイスなど様々なプラットフォームで表示可能にします。
ここまで、APIについて基礎的な知識から、メリット・デメリット、利用時の注意点や活用事例を解説してきました。
API連携をすることで、セキュリティの高い機能を、時間とコストを削減した上で導入することができます。また、その他様々なメリットから、APIを公開する企業・政府は世界的に増加しており、APIエコノミーと言われる商圏も誕生しています。
JIITAKでは過去に、API連携にお悩みのあるプロダクト開発(海外物販を簡単に楽しめるようになるeBay出品・分析アプリ)を行なった実績があります。過去の開発経験をもとに、ヒアリングから丁寧にサポートさせて頂き、「テクノロジーの力で今日の挑戦を価値ある明日につなぐ」というミッションのもと、プロダクト開発を全力でサポートさせていただきます。みなさまのアイデアをぜひ、JIITAKまでお聞かせください。