APIとは? API連携の仕組みや事例をわかりやすく紹介

APIは、あるソフトウェアの機能を別のソフトウェアから呼び出す仕組みを表します。近年「APIエコノミー」とも呼ばれるように、ビジネス拡大の場面でAPIを活用する事例も増えています。この記事では、APIを理解するために、その仕組みから利用方法、API連携がもたらすメリット、利用する際の注意点までを紹介します。

API(Application Programming Interface)とは

「API」とは「アプリケーション・プログラミング・インターフェース(Application Programing Interface)」の頭文字をとったもので、「インターフェース」という言葉が意味するように「境界線」「接点」を用いてアプリケーションをつなぐ機能を提供します。使用すれば、異なるソフトウェアやプログラムを連携させられるようになります。

旧来のAPIは、アプリケーションそれぞれに用意されている独自のインターフェースを用いて連携するものでした。例えば表計算ソフトで作成した数値データをBIツールに連携して分析を可能にするなど、データの出入り口としてAPIが利用されるだけであり、必要な機能を利用する際は都度それぞれのアプリケーションを切り替えて利用していました。また、連携するために各アプリケーションで独自に用意された利用手順、仕様に従う必要があり、異なるアプリケーションのAPIを利用しようとするたびに独自の開発が必要でした。

インターネットが登場してWebブラウザーを用いたWebサービスが一般的になった昨今では、アプリケーションをすべてゼロから開発するのではなく、マイクロサービスと呼ばれる各種Webサービスを組み合わせることで構築する、Web APIを利用する開発方法が注目されています。このマイクロサービスを利用するためにも、APIは中核となる技術として重要です。

APIの仕組み

APIはユーザーが必要とするたびに利用(リクエスト)され、その応答(レスポンス)を得ることで利用されます。リクエストは利用しているアプリケーションでAPIの利用が必要とされるたびに行われ、期待している結果が得られなかった場合にも都度レスポンスが返却されます。

例えば、ECサイトでユーザーがクレジットカードを用いて決済する機能でAPIを用いた場合、ECサイト側でクレジットカードの決済機能を開発する必要はありません。クレジットカード運営会社が用意しているAPIに対してカード番号や氏名といった情報を含めリクエストすると、決済の可否を表すレスポンスが返ってきます。ECサイトで独自にカード情報を管理したり、情報漏洩を防ぐためにセキュリティを充実させたりする必要がなく、ユーザー側の視点では手軽に安全な買い物を実現できます。

APIを活用するために必要な知識

広く利用されているAPIですが、その利用にはアプリケーションの開発が必要になります。このため、プログラミング言語の知識をある程度理解しておく必要があります。プログラミング言語は従来から利用されているC言語やVisual Basicのほか、最近ではRubyやJava、Pythonといった言語が用いられます。

また、APIを利用する際に提供元から提示される仕様もアプリケーション開発の知識があることを前提としている場合が多く、IT知識のない専門職が不在の場合、APIを用いたアプリケーションの開発は困難です。

汎用性の高い「Web API」とは

Web APIとはAPIの一種で、日常的に利用しているWebブラウザーで用いられているHTTP/HTTPSプロトコル(通信規則)を用いてネットワーク越しにアプリケーション間で利用できるインターフェースです。HTTP/HTTPSプロトコルはWebブラウザーとWebページを提供するWebサーバーの間でデータをやり取りする通信規格であるため、広く一般的に用いられています。

一般的に用いられているプロトコルを用いるため、アプリケーション開発で用いるプログラミング言語が異なっている場合でも通信が可能で開発も容易です。旧来のHTTP/HTTPSプロトコルが用いられていないAPIを開発、利用する場合は、どのようなタイミングで何のデータを送受信するのか、何らかの不具合で適切なデータを返信できなかった場合にはどのような結果を示すのか、といった詳細な仕様をアプリケーションごとに取り決める必要があります。 ここでは、代表的なWeb APIとしてREST APIとSOAP APIを紹介します。

REST API

「REST」とは「REpresentational State Transfer」の略称で、Webシステムの設計思想、概念であり前述のHTTP/HTTPSプロトコルのような規則ではありません。しかしながら汎用性が高く、その概念に沿った開発が容易であることからWeb APIで主流として用いられています。

RESTの概念にはいくつかの原則があります。
「統一インターフェース」の原則では、統一された形式でアクセスが可能であること(HTTP/HTTPSプロトコルとURLを用いてアクセス可能であること)が求められます。
「ステートレス」の原則では、リクエストとレスポンスのセットはそれぞれ独立していること(Webブラウザーからのリクエストに対するレスポンスが返却された時点で接続が完了すること)を満たす必要があります。
「階層型システム」の原則では、レスポンスは許可された仲介者に接続できること(負荷分散を行う階層やセキュリティ処理を行う階層に分かれていること)などが定められています。

このほかにも「キャッシュ可能性」の原則ではレスポンスで返却されたデータはキャッシュ可能(一時保存が可能)または不可能であることを定義できること(Webブラウザーによってキャッシュ可能である、または不可能であること)、「コードオンデマンド」の任意原則では実行可能なプログラムが転送可能であること(JavaScriptなどのプログラムをWebブラウザーで実行可能であること)など、複数の原則が定められています。

このような原則を満たすAPIを利用することで、シンプルで効率的な開発ができ、処理の負荷も高くなりにくいアプリケーションを開発できます。

SOAP API

「SOAP」は「Simple Object Access Protocol」の略称で、異なるプログラミング言語やプラットフォーム(オペレーションシステムなど)で開発されたアプリケーション間の通信ができるようにすることを目指して設計されたWebサービスアクセスプロトコルです。プロトコルであるため、実際にプログラムで利用する際にはルールに沿った開発を行う必要があります。RESTではデータ形式としてJSONやHTML、プレーンテキストといった一般的なものを利用できるのに対し、SOAPではXMLを用いることが定められています。

「XML」は「Extensible Markup Language」の略称で、HTMLと似ており文字をタグで囲んだ形式で記述されます。タグは任意に決められるため汎用性や拡張性が高く、アプリケーションに依存することなく利用できるといったメリットがありますが、その反面タグを用いるため編集がしづらくタグを解析するためにアプリケーションでの処理の負荷が大きくなるといったデメリットがあります。

また、SOAPを利用するためにはWebサービス記述言語(WSDL)を用いてAPIにリクエストする際の接続先やパラメータを記述する必要があります。WSDLは自動生成可能ですが不具合が発生した場合の調査が複雑になる、といったデメリットもあります。

API連携とは

APIを利用してアプリケーション間やシステム間でデータや機能を連携し、利用できる機能を拡張することを「API連携」と言います。例えばAPI連携を用いると、社内の発注手続きを行う際の申請ワークフローシステムと電子決済システムを連携させてワンストップで契約手続きを済ませる、といった利用方法が実現できます。また、自社のAPIを連携してもらうために提供することを「API公開」と言います。

API連携を行う4つのメリット

アプリケーションでAPIを用いた連携を行うことは業務の効率化が図れるだけでなく、それ以外のメリットも得られます。

プログラミング開発におけるコスト削減

既存アプリケーションの機能拡張を行う場合、要件定義を行った後に設計、開発、テストという段階を経て新機能をリリースするのが一般的です。要件に一致した機能を提供するAPIが存在する場合、要件定義を行った後の設計、開発、テストの開発費用が大幅に削減できます。

多くのAPIは無償で提供されているためランニングコストを抑える効果も期待できますが、有償APIであっても自社で開発し運用する費用を想定すると低コストに抑えられます。自社開発することを想定した場合と比べ、APIを利用することにより軽減された時間を想定すると、結果的にはコストを削減できるケースが多いです。

公開ソフトウェアのデータ活用

APIには利用する際の仕様が一般公開されていて、ほかのアプリケーションから利用可能なものがあります。金融業界では銀行法の改正もあり、APIの公開が広がっています。また、EC業界やSNS業界でもAPIが公開されていることも多く、ECサイトからは顧客や購入された商品の情報を、SNSサイトからは顧客の本音を取得する、といった形で顧客の動向を分析できます。

ユーザーの利便性向上

利便性向上の例として、自社サービスを初めて利用するユーザー向けに、他社サービスの情報を用いてログインできる機能を使用することが挙げられます。API連携により他社サービスのユーザー登録情報を取得できるため、自社サービスを初めて利用するユーザーであっても、面倒なユーザー情報の入力を省略できます。

また、ECサイトなどで自社サービスをユーザーに利用してもらう際、API連携によって他社サービスのポイントを付与するといったサービスも構築できるため、利便性向上に加え自社サービスの付加価値をつけることも容易に実現できます。

セキュリティの向上

セキュリティが破られ個人情報が流出したというニュースは後を絶ちませんが、さまざまな手段により試みられる不正行為からセキュリティレベルを高く保つには大きな労力を必要とします。この点についてもAPI連携によりFacebookやTwitter、Googleといったセキュリティレベルが高い認証システムを利用することにより、大きな労力を必要とすることなく高いセキュリティレベル最近では、比較的セキュリティレベルが高いモバイルデバイスを利用した二段階認証を利用するサービスも増えていますが、このような認証システムを自社で構築、運用する場合と比較しても、API連携を用いた認証サービスの利用はコスト面で有利です。

APIを利用する際の注意点

APIキーとシークレットキーログインIDとパスワードに相当するものになるため、第三者に伝えたり複数の部署で使い回したりといった利用は厳禁です。また、APIキーやシークレットキーに付与されるAPI利用時の権限も最低限にとどめておくべきです。

そのほかにもAPI利用時に注意すべき点として、従量課金制のAPIを利用する際に誤って膨大な回数のリクエストを送付してしまい多額の利用料金を請求される、リクエスト回数の制限があるAPIの上限に達してしまいそのAPIを利用できなくなる、海外のAPIを利用中に基準となる日付や時刻が現地時刻であるため想定している結果を得られないことなどが挙げられます。

APIを活用したオープンイノベーション事例

また、APIは各分野でオープンイノベーションを起こしています。

音声AIによる再配達の自動化

某大手物流事業者は、NTT Comが提供する音声AIによる再配達自動受け付けを採用しました。APIを連携させて、オペレーターの問い合わせ業務の一部をAIが行うことによって、コールセンターの人員対応の大幅削減が実現しました。約2年間の実証実験ではサービス完了率が80%を超え、現在では全国にある約1,000箇所以上の集配センターで運用されています。

金融機関とFintechの接続

株式会社NTTデータ(以下NTTデータ)が提供する金融機関向けクラウドサービス「OpenCanvas」は、金融機関や利用者、国内外のFintech企業などといった様々なネットワークの連携を可能にしています。API-GW as a Serviceを適用しているため、API接続を前提としている国内外のFintech企業などとも接続が可能になります。

QRコード決済サービスの提供

NTTデータが提供するキャッシュレス決済総合プラットフォーム「CAFIS」では、2018年からQRコード決済サービスの提供を開始しています。加盟店がQRコード決済を導入する際は専用のプロトコルを利用するのが主流でしたが、CAFISでは近年一般的となっているWebAPIの活用・運用管理をサポートしています。

APIにおける運用管理の手間を減らすソリューションを選ぶ

APIの活用において重要なのは運用管理の手間を減らす環境です。各社から提供されるAPIの仕様に応じて、事前準備や機能改修などといった個別対応を行ってしまうと膨大なコストがかかってしまいます。その課題を解消するためには、APIを別の仕組みで吸収し、その情報を簡単に呼び出せる仕組みが必要になってきます。

API連携は簡単に自社の機能を拡張させられますが、それを最大限に運用していくためには基盤となる環境こそが重要です。APIの運用管理を吸収できるようなソリューションの導入を検討してみてはいかがでしょうか。

次世代インターコネクトサービス「Flexible InterConnect」

Flexible InterConnectは利用者と様々なクラウドサービスなどを簡単かつセキュアに接続できるインターコネクトサービスです。接続先のクラウドやネットワークの帯域、セキュリティ設定などはポータルサイトからオンデマンドで一元的に設定・管理することも可能です。
さらに、最大10Gbpsの広帯域接続にも対応しているため、クラウドの同時接続などにおいても安定かつセキュアなデータ通信が実現します。また、ファイアーウォールやNATなどはソフトウェアコンポーネントとして提供されるため、新たに専用機器の購入や設定が不要なので、導入のハードルも低いです。
Flexible InterConnectではOpenStackに互換性のあるAPIを提供しているので、それを利用して各種プログラムからFlexible InterConnectを操作し、インストラクチャ構築を自動化することが可能です。

こちらもチェック!合わせて読まれているおすすめ記事
こちらもチェック!合わせて読まれているおすすめ記事

Smart Data Platform は、
お客さまのデジタル課題に合わせた
最適なサービス・プランの組み合わせを
ご提案することができます

新規導入のご相談やお見積、サービス仕様など
ご不明な点があればお気軽にお問い合わせください

お問い合わせ

このページのトップへ