• 会員限定
  • 2023/04/27 掲載

APIとは何か? API連携ってどういうこと? 図解で仕組みをやさしく解説

  • icon-mail
  • icon-print
  • icon-hatena
  • icon-line
  • icon-close-snsbtns
記事をお気に入りリストに登録することができます。
インターネット上で提供されている企業のWebサービスを見ると、必ずと言っていいほど、どこかに「API」という単語が見つかるはずです。しかし、APIとは、あるいはAPI連携とは具体的にどのような仕組みのことを言っているのでしょうか? 本稿ではAPIの仕組みやメリット・デメリット、代表的なサービスについて、難しい言葉を使わずにやさしく解説していきます。さらには具体例として、Amazon Web Services(AWS)やGoogle Cloud Platform(GCP)、Twitter、LINE、ChatGPT(OpenAI)などとの連携方法も紹介します。

執筆:フリーライター 三津村直貴

執筆:フリーライター 三津村直貴

合同会社Noteip代表。ライター。米国の大学でコンピューターサイエンスを専攻し、卒業後は国内の一部上場企業でIT関連製品の企画・マーケティングなどに従事。退職後はライターとして書籍や記事の執筆、WEBコンテンツの制作に関わっている。人工知能の他に科学・IT・軍事・医療関連のトピックを扱っており、研究機関・大学における研究支援活動も行っている。著書『近未来のコア・テクノロジー(翔泳社)』『図解これだけは知っておきたいAIビジネス入門(成美堂)』、執筆協力『マンガでわかる人工知能(池田書店)』など。

photo
APIの仕組みを図解で解説(詳細は後述)

APIとは? プログラム同士をつなぐ「インターフェース」

 APIとは「アプリケーション・プログラミング・インターフェース(Application Programming Interface)」の略称です。一言で表すと、ソフトウェアやプログラム、Webサービスの間をつなぐインターフェースのことを指します。

 インターフェースとは、何かしらの「境界面」「接点」のことを指し、異なる2つの事物の間をつなぐという意味を持ちます。たとえばキーボードやマウス、ディスプレイは人間とコンピューターの境界上で使われる「ユーザーインターフェース」の1つとして知られます。また、USBやHDMIといった、機械と機械をつなぐコネクターは「ハードウェアインターフェース」と呼ばれます。

 そしてAPIは、主にソフトウェアやプログラム同士をつないでいるインターフェースなのです。

 ユーザーがサービスを使う際にAPIの存在を意識することはあまりありません。しかしその裏では、APIは非常に幅広い用途で使われています。

 たとえばニュースサイトにGoogleアカウントでログインする際にはグーグルのAPIによってログイン情報が暗号化して認証されています。また、電子マネーで買い物する際には、決済代行サービスのAPIによって電子マネーの決済情報をやり取りされているのです。

この記事の文章を動画・音声でご確認いただけます

API連携の仕組みを詳しく。どうやって異なるものをつなげるのか

 ここで、APIでソフトウェア同士をつなぐこと、つまり「API連携」の仕組みをもう少し掘り下げてみましょう。

画像
APIとは何か?身近な例などを用いてやさしく解説していく
(Photo/Shutterstock.com)

 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を使うメリット・デメリットを紹介していきます。

 まず、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

処理に失敗しました

人気のタグ

投稿したコメントを
削除しますか?

あなたの投稿コメント編集

機能制限のお知らせ

現在、コメントの違反報告があったため一部機能が利用できなくなっています。

そのため、この機能はご利用いただけません。
詳しくはこちらにお問い合わせください。

通報

このコメントについて、
問題の詳細をお知らせください。

ビジネス+ITルール違反についてはこちらをご覧ください。

通報

報告が完了しました

コメントを投稿することにより自身の基本情報
本メディアサイトに公開されます

必要な会員情報が不足しています。

必要な会員情報をすべてご登録いただくまでは、以下のサービスがご利用いただけません。

  • 記事閲覧数の制限なし

  • [お気に入り]ボタンでの記事取り置き

  • タグフォロー

  • おすすめコンテンツの表示

詳細情報を入力して
会員限定機能を使いこなしましょう!

詳細はこちら 詳細情報の入力へ進む
報告が完了しました

」さんのブロックを解除しますか?

ブロックを解除するとお互いにフォローすることができるようになります。

ブロック

さんはあなたをフォローしたりあなたのコメントにいいねできなくなります。また、さんからの通知は表示されなくなります。

さんをブロックしますか?

ブロック

ブロックが完了しました

ブロック解除

ブロック解除が完了しました

機能制限のお知らせ

現在、コメントの違反報告があったため一部機能が利用できなくなっています。

そのため、この機能はご利用いただけません。
詳しくはこちらにお問い合わせください。

ユーザーをフォローすることにより自身の基本情報
お相手に公開されます