API(Application Programming Interface)は、ソフトウェア間でデータや機能をやり取りするためのインターフェースです。インターフェースとは二つのシステムを橋渡しする接点のことで、両者をつなぐ役割を果たします。APIによって、外部の企業が開発した機能や収集したデータを、決められた手続きを通じて利用することができます。
例えば、地図サービスのAPIを利用することで、自社サイトに正確な地図情報を表示できます。また、ソーシャルメディアが提供するAPIを利用して、自社に関する投稿を把握したり分析したりすることが可能です。このようなWeb経由のAPIだけでなく、OSやプログラミング言語(ライブラリ)、データベースなどでもAPIが提供されています。
APIが登場したのは1990年代で、当初は主にOSが提供する機能を外部からアプリケーションが利用する用途で使われていました。その後、インターネットの普及に伴い、HTTP・HTTPS通信を使用して接続するWeb APIの利用が拡大しました。最近では、APIと言えばWeb APIを指すことが多くなっています。
データや機能を提供するAPI提供事業者は、利用手順をAPIとして提供します。API利用者は、その手順に沿ってAPIキーとともにリクエストを送信して利用します。個別に機能を開発しなくても、APIを通じて必要なデータや機能を自社サービスに組み込めるため、開発の効率化につながります。
APIは、API利用者が送信する「リクエスト(要求)」と、API提供事業者が返答する「レスポンス(応答)」の組み合わせで構成されます。ここでは、利用機会が多いWeb APIを例にして基本的な仕組みを説明します。
HTTPリクエストの送信:API利用者は、API提供側が決めた手続きに沿って特定のURL(エンドポイント)へ機能やデータに対するリクエストを送信します。
HTTPリクエストの処理:サーバーは受信したリクエストを処理し、要求された機能やデータにアクセスします。
HTTPレスポンスの返却:サーバーはリクエストの処理結果をレスポンスとしてAPI利用者に返却します。通常、レスポンスはJSONやXML形式で返されます。
なお、APIの仕組みを利用して外部サービスと接続し、アプリケーションの機能を拡張することを「API連携」と言います。API連携については以下の記事で詳しく解説しています。
各種サービスを開発する際には、APIの利活用が欠かせないものになっています。そのため非エンジニアであっても、基本的な仕組みや導入手順を理解しておくことが望ましいです。
自社でサービスを開発する際にも、「APIキー」「シークレット」などの用語を知っておくとエンジニアと円滑にやり取りができます。併せてWeb APIを理解するうえで欠かせない「HTTPS(HTTP)通信」「REST API」についても、基本的な内容を理解しておくことをおすすめします。
APIキーとシークレットは、どちらもAPIを利用する際に必要となる認証情報です。API利用におけるIDとパスワードのようなものだと考えるとイメージしやすいでしょう。
APIキーは、API提供事業者から発行される一意の識別子です。多くのAPIでは、事前にサービスのユーザー登録をしたうえでAPIキーを取得します。取得したAPIキーは、リクエストに含めて送信することで、サーバー側に認識されて認証されます。
APIシークレットは、APIキーと組み合わせて使用される秘密のキーです。リクエストの署名や暗号化にも使用されます。
HTTP(Hyper Text Transfer Protocol)は、Webサーバーとブラウザ間でデータを安全に送受信するためのプロトコル(規約)です。HTTP通信にSSL/TLSによる暗号化を追加したものをHTTPS通信と呼びます。
Web APIでは、Webサイトを閲覧するのと同じHTTP/HTTPS通信を使用して通信を行います。これにより、異なる開発言語が用いられたアプリケーション間、異なるプラットフォーム間であっても、データのやり取りが可能になります。
REST(Representational State Transfer)APIは、RESTという設計思想に基づいたAPIのことです。シンプルな設計で柔軟性が高いことが特徴です。
具体的には、以下の「RESTの4原則」に従います。
なお、Web APIの種類には、REST APIのほかにSOAP(Simple Object Access Protocol)もよく知られています。これは、XMLベースのリクエストとレスポンスを使用するのが特徴で、セキュリティを重視するケースでよく用いられています。
APIには多くのメリットがありますが、注意すべきデメリットも存在します。サービスを開発する際にはその両面を検討したうえで、APIを利用するべきか、または自社開発をすべきかを決定する必要があります。
APIを利用する最大のメリットは、自社で独自に開発する必要がなくなることです。これにより、必要なデータや機能を迅速に利用できるようになります。また、開発時間とコストを削減できます。結果的に、ビジネス環境の変化に合わせてサービスに柔軟に機能を追加できるようになり、競争力の向上が期待できます。
APIを利用する際には、トラブルなどによりAPIが停止した場合や、仕様変更があった場合に影響を受けるリスクがあります。実際に、提供企業が突然APIの規約を変更したことで、一時的にサービスが停止したサービスや、採算が取れずに終了したサービスがありました。
このようなリスクを避けるためには、APIの利用規約をきちんと確認し、代替手段を用意しておくことが望ましいです。そこまではできない場合でも、APIを利用する際にはサービスが利用できなくなる可能性がある点を常に念頭に置きましょう。
APIは、ビジネスにおいてさまざまな用途で活用されています。ここでは、SMS送信や生成AIのAPIを活用する例を紹介します。
多要素認証(MFA)は、ログイン時に複数の認証要素を提供する仕組みです。代表的なものがSMS認証で、IDとパスワード(知識情報)による認証を行った後に、スマホに送信したSMS(所有情報)による認証を行います。
セキュリティを強化する目的で実装するサービスが増加していますが、多くの企業でSMS送信APIを利用して開発を効率化しています。これは仕様に沿ってSMSを自動送信してくれるもので、大手通信会社やメッセージングサービスに特化した専門企業など、さまざまな企業がAPIを提供しています。
なお、SMS送信APIは、認証以外にも予約の確認やキャンペーン通知などにも活用されています。
生成AIは、膨大なデータを学習したAIがテキスト、画像、動画などのコンテンツを生成する技術です。AIの専門知識がなくても利用できることから近年急速に普及しています。生成AIサービス各社は、これらの機能をAPIとして提供しており、企業はこれを利用することで高度なAI機能を簡単にサービスに組み込むことができます。
例えば、ユーザーからの問い合わせに適切な回答を自動生成するチャットボットや、会議の内容を文字起こしして要約するサービスなど、生成AIを活用した便利で革新的なサービスが次々と生み出されています。企業が個別に生成AIを開発することは現実的ではないため、こうしたAPIの重要性は非常に高いです。
自社でAPIを使用するための基本的な手順を説明します。
まず、自社のニーズを踏まえてどのAPIサービスを利用するかを検討します。類似の機能を提供するAPIが複数ある場合は、利用実績が豊富なサービスや評価が高いサービスを選ぶと安全です。またサービス利費用がかかるものもあるため、運用コストも検討対象に含めて比較検討してください。
利用するAPIサービスが決まったら、そのサービスに登録して必要な情報を入手します。登録する際には、利用者情報のほか、APIを使用するサイトに関する情報などを入力します。登録完了後、API実行先となるAPIエンドポイントや、APIキー・シークレット、API仕様書などを入手します。
なお、サービスによっては利用審査がある場合があり、数日~1週間以上かかることもあるため余裕をもって申し込みを行うようにすると慌てずに済みます。
アプリケーションで使用できるよう、取得したAPIキーとシークレットを環境変数として設定します。
APIキーとシークレットを設定したら、手順に従って実際にAPIにリクエストを送信して動作確認を行います。期待通りのレスポンスが返ってくるか確認しましょう。
APIを利用するということは、インターネット経由で別のサーバーへアクセスすることでもあります。そのため不正アクセスや盗聴、内部からの情報漏えいなどにより被害に遭うリスクがあります。顧客の個人情報や決済データなど大きな被害に発生する危険があるため、セキュリティ対策をきちんと行うことが重要です。
特に漏えいした場合に影響が大きいAPIキー・シークレットの管理は厳重に行うことが求められます。APIキーは共有しない、ソースコードにはAPIキーを含めない、ログを監視するなど、徹底して管理するようにしましょう。また万が一APIキーが漏えいした疑いがある場合は、キーを無効化するなど速やかに対処するようにしてください。
APIは、他社が提供するさまざまなデータや機能を簡単に利用できる便利な仕組みです。開発を効率化するだけでなく、上手に使いこなすことで自社サービスの価値を高められます。自社にとって役立つAPIを積極的に活用して、新たな可能性やアイデアを生み出しましょう。