- 会員限定
- 2023/04/27 掲載
APIとは何か? API連携ってどういうこと? 図解で仕組みをやさしく解説
APIとは? プログラム同士をつなぐ「インターフェース」
APIとは「アプリケーション・プログラミング・インターフェース(Application Programming Interface)」の略称です。一言で表すと、ソフトウェアやプログラム、Webサービスの間をつなぐインターフェースのことを指します。インターフェースとは、何かしらの「境界面」「接点」のことを指し、異なる2つの事物の間をつなぐという意味を持ちます。たとえばキーボードやマウス、ディスプレイは人間とコンピューターの境界上で使われる「ユーザーインターフェース」の1つとして知られます。また、USBやHDMIといった、機械と機械をつなぐコネクターは「ハードウェアインターフェース」と呼ばれます。
そしてAPIは、主にソフトウェアやプログラム同士をつないでいるインターフェースなのです。
ユーザーがサービスを使う際にAPIの存在を意識することはあまりありません。しかしその裏では、APIは非常に幅広い用途で使われています。
たとえばニュースサイトにGoogleアカウントでログインする際にはグーグルのAPIによってログイン情報が暗号化して認証されています。また、電子マネーで買い物する際には、決済代行サービスのAPIによって電子マネーの決済情報をやり取りされているのです。
この記事の文章を動画・音声でご確認いただけます
API連携の仕組みを詳しく。どうやって異なるものをつなげるのか
ここで、APIでソフトウェア同士をつなぐこと、つまり「API連携」の仕組みをもう少し掘り下げてみましょう。APIの基本的なプロセスは「リクエスト(要求)」と「レスポンス(応答)」で構成されます。リクエストをするのがAPI利用者で、レスポンスをするのがAPIの提供者。リクエストとレスポンスに関するルールはAPIの提供者が定めます。つまり、何のリクエストに対してどんなレスポンスを返すかということを提供者がAPIの設計段階で考え、実装し、利用可能な状態にします。この設計次第でAPIのリクエストとレスポンスの関係は大きく変わるので、「APIは●●をしてくれるもの」という決まりはありません。
少し具体的にAPIの利用シーンをイメージしてみましょう。私たちはネットショッピングをする際にカード番号を打ち込みますが、番号・名前・期限・セキュリティコードなどの情報が安全性の低いネットショップのサーバに保管されると第三者に悪用される恐れがあります。そこでネットショップでは、カード会社が提供しているAPIが使われています。
ネットショップはAPIを通して「これからお客さまがカード情報を打ち込むから確認してくれ」と要求します。顧客によって打ち込まれた情報はネットショップを通さず、直接カード会社のサーバに届き、情報が確認され、ネットショップ宛に「カードを確認した。決済は完了」という連絡だけが送られます。ネットショップはカード情報を管理することなく決済が確認できるので、顧客は安全に買い物ができるようになり、ショップのサーバ管理コストも最低限に抑えられるというわけです。
上記例のネットショップのように、自社サービスでAPIを利用するのは簡単です。ルールに沿ってコードを書いて「この情報をくれ」「こういう動作をしてくれ」と要求するだけ。場合によっては利用者を識別するためのIDなどを送ることもありますが、公開されているAPIの多くが「誰にでも使える」状態になっています。使いすぎて利用制限がかかる場合もありますが、APIを使うこと自体はそこまで難しくないのです 。
APIの利用プロセスは役所や商店の「窓口」と似ています。APIを通して「何をしてほしいか」を仕様(申込用紙)に沿って記述し、APIの提供元にその要求を送信します。ルールに則って必要事項が書かれていれば、APIを提供するサービスやソフトウェアが要求を処理し、その結果を返答します。
APIを利用すれば、自分は何もせずにAPIに要求を送るだけで、「ある種の高度な情報処理や分析が実行するプログラム」さえ作れてしまうのです。
ただ、当たり前ですが、APIの定めた仕様で想定されていないことはできません。これは役所の窓口で「問い合わせフォームに項目のないもの」「申請書に記入できないもの」「書式に則っていないもの」が受け付けられないのと同じです。
最初の段階でAPIの提供者が、サービスの利用範囲を決めているので、それ以外のことはできないようになっています。もし、APIのルールを破って想定されていない使い方をしたり、バグを利用したりすれば、それは不正利用、ハッキングとなる可能性があります。
一方で、APIを提供するのは簡単ではありません。APIは自社のサービスやプログラムを他人に使わせる仕組みを作るものです。どこまで使わせるか、どうやって使わせるか、どうデータやプログラムの利用に制限をかけ、安全に運用するか。一歩間違えればAPIの不正利用によってデータが流出したり、予期せぬ損害を自他に与えたり、信頼を損なう可能性があります。APIを提供するには慎重なAPIの設計が必要となるのです。
API利用のメリット&デメリット
ここからは、APIを使うメリット・デメリットを紹介していきます。まず、APIを利用するメリットとしては、本来は扱うことのできなかったデータ交換や処理ができるようになる点が挙げられます。
たとえば、Web APIの場合は「ログイン情報」「クレジットカードの決済情報」など個人情報に関わる認証処理、「画像認識システム」「データ分析AI」といった高度で複雑な情報処理が、APIを通してカード会社やITプラットフォームにアクセスすることで可能になります。
ユーザーもサイト管理者も、Webサイトのアカウント管理は非常に面倒です。ユーザーにとっては新しいパスワードを作って覚えるというだけで面倒ですし、管理者にとってはパスワードを安全に保管するのは大きな手間です。そこでAPIを使って他のサイトのアカウントをそのまま使えるとなれば、ユーザーと管理者双方に大きなメリットがあります。
ネイティブAPIやランタイムAPIでは、APIを通してOSやプログラミング言語が提供している機能を使うことで、エンジニアのアプリケーション作成にかかるコストが大幅に軽減されます。複雑な処理や信頼性の高い処理を自分でコードを書かなくても実装できるという点で、大きなメリットがあるでしょう。
一方で、APIの利用にはリスクが伴います。たとえば、API経由で送ったデータをAPI提供者がどのように使うか分かりません。また、自社のサービスやソフトウェア機能の一部を外部に依存することは、自社のソフトウェアやサービスの動作が不安定になったり、維持費が増加したりする恐れもあります。
さらに、APIを使うことでアプリケーションやサービス全体の処理が不透明になってしまう場合も少なくありません。リクエストに対するレスポンスの多くが想定どおりのものだったとしても、APIの内部で行われている処理が開示されていない場合には、想定外のレスポンスによって大きなトラブルが発生する恐れがあります。
APIは非常に便利なツールではありますが、「何でもかんでもAPIを使えば良い」というわけではありません。そもそも、APIを通してどんな機能を提供するかは、提供者のさじ加減ひとつで変わります。突然仕様が変わって使えなくなったり、提供が止まったりすれば、利用している側のサービスの存続にも関わります。同じ機能を自社のソフトウェアやサービスに直接実装したほうが、処理が早く柔軟に機能拡張できる場合もあるでしょう。
「絶対にAPIを使わなければ実装できない」というクレジットカード認証のようなケースは意外と少なく、コストや技術的に現実的かどうかは別としても、同じ機能を実装する方法はいくらでもあります。「APIを使うべきかどうか」「仕様や設計をどうするか」については、慎重に検討する必要があるでしょう。 【次ページ】Web APIとは? APIの種類と違い
関連コンテンツ
PR
PR
PR