「APIとは?デメリットはある?」
「APIの仕組みや開発の流れが知りたい」
このようにお悩みではありませんか?
WEBに関わっていると、「API」という言葉を聞くことがあるかと思います。また、開発の現場などでエンジニア同士の会話に耳を傾けていると、以下のような会話はわりかし頻繁に登場します。
「それってAPIで繋げないの?」
しかし、突然IT業界に縁もゆかりもない人からAPIの意味を教えてください、と真顔で問い詰められると答えに窮してしまう方も多いのではないでしょうか?
そこで、今回は、その回答を見つけるべく「APIとは?」とググった結果、めでたくこのページにたどり着いたあなたのために、以下について詳しく解説します。
● APIとは何か
● APIの仕組み
● APIのメリット・デメリット
● Web APIについて
● APIの活用例
● Web APIの実例
ぜひ、最後までお付き合いください。
ITリテラシーやビジネス知識を学びたい方は「データのじかん」のコンテンツをぜひお読みください。「データのじかん」は、テクノロジーやデータで、ビジネスや社会を変え、文化をつくりあげようとする越境者のみなさまに寄り添うメディアです。
「API」とは、「Application Programming Interface」の頭文字です。
英文字だけで意味を理解しようとすると、アプリケーション・プログラミング・インターフェースで、大雑把に言うと「アプリケーションをプログラミングするためのインターフェース」という意味です。
インターフェースとは、コンピュータ用語で言うと、「何か」と「何か」を繋ぐものという意味を持ちます。例えば、USBも「パソコン」と「周辺機器」を繋ぐものですので、インターフェースの一つです。
つまり、APIとは、この「何か」と「何か」が「アプリケーション、ソフトウェア」と「プログラム」を繋ぐもの、という意味になります。
APIとはソフトウェアやアプリケーションなどの一部を外部に向けて公開することにより、第三者が開発したソフトウェアと機能を共有できるようにしてくれるものです。USBは外部デバイスとパソコンを繋ぐインターフェースですが、APIはソフトウェア同士を繋げます。つまり、異なるソフトウェアやサービス間で認証機能を共有したり、チャット機能を共有したり、片方から数値データを取り込み、別のプログラムでそのデータを解析したりできるようになります。
APIを公開する、とはわかりやすく言うと、ソフトウェアにAPIという外部とやりとりする窓口を作り、外部アプリとコミュニケーションや連携ができる状態にする、ということです。鎖国時代の日本と諸外国は連携することが困難でしたが、諸外国との貿易を許されていた唯一の場所である長崎の出島をうまく活用することで、日本との貿易や文化交流、情報交換が行えるようになった、という歴史の話があります。日本を一つのソフトウェア、諸外国をまた別のソフトウェアと考えると、出島が司っていたのが言ってみればその2つを繋げるAPI機能です。
APIの定義は「プログラムを通じてアプリケーションやソフトウェアの資源を利用するための接続口」です。ソフトウェア間で機能を共有し、アプリケーション開発を容易にします。
アプリとアプリを繋げることによって、機能性を拡張させ、さらに便利に使えるようにし、欲を言えば両方のアプリにとってウィン・ウィンの状態を生み出すのがAPIの狙いです。
APIはソフトウェア同士を繋げるインターフェースですが、ソフトウェアにはOperating System(オペレーティングシステム)やマウスやキーボードといった周辺機器を動かすためのデバイスドライバ、ExcelやWordをはじめとするアプリケーションソフトと機器の様々な階層に組み込まれています。
APIは機器内のCPU・ストレージといったハードウェアとデバイスドライバとの間の縦階層、Webブラウザとアクセス先のWebサイトといった機器を跨いだ横階層同士での接続を形成します。
昨今注目されているWeb APIは、インターネットのプロトコルでAPIを介してデータをやり取りすることで、クラウド上にあるサービスとの連携を実現します。
LinuxやWindowsをはじめとするOS(Operating System)は、ハードウェアを利用したり、管理したりするための基本ソフトウェアですが、各種のミドルウエアやアプリケーションといったOS以外のソフトウェアは、OSを介してコンピュータを利用します。
OSは、CPU、メモリー、ストレージ、ネットワークカードなどのハードウェアとのインターフェースを形成し、さらにハードウェアの違いを吸収して、コンピューターリソースとして、これらを管理しています。
OSは、ミドルウエアやアプリケーションがコンピューターリソースを使いやすくするためのインターフェースであるAPIを提供しており、APIを使用することで、プログラム作成とコンピュータの利用を容易にするだけでなく、それに従って作成されたアプリケーションの可搬性、移植性も保証してくれます。
ランタイムとは、アプリケーションを実行するために必要な単体プログラムのほか、開発ツールを用いて開発したファイル群(ランタイム環境)を指します。
プログラムが必要とする単体プログラム(モジュール)のことをランタイムライブラリと言いますが、APIが使用されていたり、単体プログラムでAPIをさらに使いやすくしたインターフェースを形成したりするため、APIという場合が少なくありません。
マイクロソフトの「Windowsランタイム」においては、プログラミングモデルであり、アプリケーションを作成するバックボーンとなるAPIとしています。
またランタイムとは、開発者がプログラムを記述し、コンパイルやリンクなどを行って実行可能形式のプログラムに変換した後で、それを実際にコンピュータ上で実行する段階を指す場合もあります。
Javaなどのプログラミングによる開発作業においては、クラスをまとめたクラスライブラリを用いることで、何百行にも及ぶコードを書くことなく、僅か数行で機能を実装することができます。
クラスライブラリとは、オブジェクト指向言語におけるライブラリで、オブジェクト指向プログラミング言語において、外部から利用可能な特定の機能を持つプログラム部品をクラスとして定義し、これを複数集めて一つのファイルなどの形にまとめたものを指します。
Javaのクラスライブラリは、機能や目的ごとにパッケージとして格納されており、特定のソフトウェアや通信プロトコル、機器などを利用するための機能をまとめたものがソフトウェア開発キット(SDK)では提供しています。
これらはクラス定義やAPI、実行可能ファイルで構成されていることから、クラスライブラリは、ライブラリAPIの他、コアAPI、標準APIと呼ぶ場合もあります。
各種アプリケーションからデータベースに接続したり、データを取得したりするには、データベースベンダーが取り決めた仕様に従って実施しており、これらの機能は、APIとライブラリのセットで構成された“ドライバー”で提供しています。
代表的なものとしてはMicrosoft社の「ODBC」やOracle社の「OCL」などで、この中のデータベースAPIは、「アプリケーションとドライバーマネージャーの間」、および「ドライバーマネージャーと各ドライバーの間」でAPIとしての役割を担います。
Web APIとは、HTTP・HTTPS通信によってやりとりするAPIのことです。
インターネットプロトコルであるHTTP・HTTPSでクラウドを介して通信するので、プログラミング言語が異なるアプリケーション同士であっても連携できたり、Webブラウザでも利用できたりします。
例えば、ウイングアーク1stのMotionBoardが備える機能の一つに、「端末機器(モノ)の「いま」のデータをリアルタイムに蓄積できるリアルタイム連携」があり、Web APIを使用することでリアルタイムにセンサーデータなどをMotionBoardに送り続けることができるようになります。
このようにWeb APIは汎用性が高く、また無料で利用できるものも多いため、あらゆるシーンで活用されています。
APIのイメージがついたところで、APIの利点について説明してみたいと思います。API機能には大きく3つの利点があります。
その3つとは、
です。
APIで組み込むことができる信頼できるプログラムが世の中にすでに存在する場合、そのプログラムと連携することで、自分で1からプログラムを組む必要がなくなり、ソフトウェア開発の効率化がはかれます。プログラム開発側にとって、開発時間を短縮することができるのは大きなメリットです。
時間短縮ができれば他の工程に時間を割くことができ、結果的にコスト削減が可能となります。
大手SNSページやアプリ会員登録時、または買い物をする場合など、Googleアカウントやフェイスブックアカウント、またはTwitterアカウントを連携することで登録ができた、という経験はありませんか?
あれは各種サービスとAPI連携が行われているため、別アプリケーションログインによる、ログイン認証ができるようになっています。わかりやすい例を挙げるなら、フェイスブックとインスタグラムです。フェイスブックのアカウントを持っている人であれば誰でもインスタグラムのアカウントをすぐに作成可能です。
自社でセキュリティレベルの高い会員登録システムを入れるよりも、すでにあるセキュリティレベルの高い会員システムを導入する方がユーザーも安心ですよね。ユーザー新たにユーザー登録をしなくても良い、という大きなメリットがあり、より多くの人に使ってもらえる、というメリットが提供側にもあります。ちなみに、提供側は、APIの連携前に必ずユーザーの承諾を得なければなりません。ユーザー側も連携サービスを使うにはユーザー情報が共有されることを許可する必要があります。(どの情報が共有されるか、などはサービスにより異なります。)
APIを使えば、それぞれのサービスの最新情報をこちら側が毎回更新しなくても取得、利用することができます。
例えば、自分のサイトでアマゾンの商品を売っている場合、アマゾンでの販売価格が変わった場合でも、API連携で情報を取得してきている場合、その変更は自動で反映されます。
Twitterやインスタグラムへの投稿をFacebookにも自動で投稿するように設定する、などが可能となっているのもAPIのおかげです。
APIはサービス提供側の事情により、使う側が影響を受ける、といったリスクが潜んでいます。そのため、APIの使用は様々な状況が発生することを想定して、自社のサービスが提供できないときの対応方法の策定や、選定の際に代替となるAPIをピックアップしておくなどは、自社とユーザーが被るリスクの低減に繋がります。
APIの具体的なデメリットは主に以下3つです。
● 提供やアップデートが終了してしまう可能性がある
● 不具合が発生しても自力で解決できない
● 利用に応じて費用がかかる場合がある
それぞれのデメリットについて解説します。
APIの提供側が、何らかの理由でサービスの提供を停止したりすると、それを使用している自社のサービスにも影響を及ぼすため、サービスが提供できなくなってしまう恐れがあります。
APIは提供元で開発、運営しているため、不具合が発覚したり、提供側のサーバーや通信障害等が発生したりした場合、自社側では対応できず、提供側のリカバリが完了するまで、使用やサービスの提供ができなくなってしまいます。
APIの多くは無償で提供されているものの、課金的に費用を課すものもあります。APIにコストがかかる場合とそうでない場合とでは、自社が提供するサービスの利益率にも影響を及ぼします。
今まで無料で利用できたAPIが突如有料化するケースはAPIに限らずクラウドツール等でも起こっており、ユーザー側は、ランニングコストを負担しても利用し続けるか?それとも代替を探すか?といった判断が迫られることになります。
次に、Web API通信が使えるようになるまでの流れを紹介します。Web APIは主に以下のような流れで開発が進みます。
1. 構築
2. 開発
3. 実装
4. 連携
5. 認証
それぞれの過程について解説します。
はじめに、Web APIの構築を行います。
クラウド環境でWeb APIを構築する際、「テナント」「リージョン」「アベイラビリティゾーン」の観点から全体像を把握します。「テナント」「リージョン」「アベイラビリティゾーン」の適切な設定は、使いやすさや災害時の素早い復旧、セキュリティ、コスト管理など様々な要因を考慮に入れたクラウド環境の設計において不可欠です。適切な計画と設計を行うことで、ビジネスの要求に合致した信頼性の高いWeb API環境を構築できます。
次に、Web APIの開発を行います。
API開発において、設計の側面にフォーカスを置くことは非常に重要です。なぜなら、今まで開発されてきているAPIは便利かつシンプルなデザインのものが多く、複雑な設計では開発者から利用されない場合があるためです。
そのため、APIのデザインはモバイルアプリやWebアプリのUIデザインと同じように、簡単でシンプルなものであるべきです。いかに多くの人が利用しやすいかといった観点で設計しましょう。
次に、Web APIの実装を行います。
私たちがアプリやWebサイト上のUIを使って操作するのと同じように、アプリもまたAPIを使って他のアプリやWebサイトを操作できます。
APIは関数を使ってデータを入力したり動かしたりするので、機能の組み合わせ方によって無限の方法で実装可能です。
次に、Web APIの連携を行います。
API連携をすることによって、連携元のアプリやWebサイトの機能が拡張しサービスの質が向上します。例えば、X(旧Twitter)などのSNSでは様々なAPIと連携することが可能です。
ただし、連携するAPIは慎重に検討しましょう。何らかの理由で停止してしまったり脆弱性が発見されたりした場合にはAPIが使えなくなってしまいます。基本的には、GoogleやAmazonなど信頼できる企業が提供しているAPIを使うのが望ましいでしょう。
最後に、Web APIの認証を行います。
API認証はセキュリティ対策の一環としてAPIの公開を制限するための手段です。基本的には、開発者に認証を要求してアカウントを取得するなどの制約をかけます。
基本的にはアプリの利用者もAPI認証のためにログインが必要で、その中でAPI連携が行われています。
インターネット上で提供されるAPIに対する不正アクセスは、APIを通じて大元のアプリやWebサイトに影響を与える可能性が少なくありません。そのため、API認証技術はセキュリティ対策の重要な要素であり、信頼性の確保に貢献しています。
次に、ビジネスにおけるAPIの利用例を2つ紹介します。
● B2CビジネスにおけるAPIの利用:X(旧Twitter)APIの有料化は悪用の排除が目的
● B2BビジネスにおけるAPIの利用:デジタルトランスフォーメーションの加速
それぞれについて解説します。
近年、ソーシャルメディアの巨人、X(旧Twitter)が『Twitter API』の有料化を発表し、業界内外で大きな話題となりました。このAPIは、外部アプリケーションからX(旧Twitter)への投稿、投稿の検索、ダイレクトメッセージの送信など、多岐にわたる機能を提供しており、多くの企業がマーケティング活動の一環として活用しています。
しかし、その背後には、botを利用した詐欺行為や情報操作などの悪質な行為の増加がありました。X(旧Twitter)は、これらの悪用を排除するための措置としてAPIの有料化を決定。APIの価値が高まる中、これは避けられない対策とも言えるでしょう。
X(旧Twitter)のAPI有料化について詳しく知りたい方は、下記記事をご覧ください。新プランと旧プランの違いや企業が今選ぶべきツールについても紹介しています。
年、B2Bビジネスの領域においてもAPIの利用が急速に進展しています。特に、デジタルトランスフォーメーションの波が高まる中、企業間のデータ連携や業務効率化を実現するための手段としてAPIが注目されています。APIエコノミーとは、APIを通じてデータや機能を提供・利用することで新しいビジネスや価値を生み出す経済活動のことを指します。B2Bビジネスにおいても、このAPIエコノミーの恩恵を受けることで、従来のビジネスモデルを大きく変革することが可能となっています。
以下の記事では、APIエコノミーについて詳しく解説しています。API開放のメリットや日本がAPIに向いている理由などについても紹介しているので、ぜひご覧ください。
● サプライチェーンの最適化
● 在庫管理の効率化
● 顧客とのコミュニケーションの強化
例えば、サプライチェーンの最適化、在庫管理の効率化、顧客とのコミュニケーションの強化など、多岐にわたる業務プロセスにAPIを活用することで、よりスムーズで効率的なビジネス運営が実現できるようになりました。
今後も、B2BビジネスにおけるAPIの利用は拡大の一途をたどることが予想されます。企業は、この動きをしっかりとキャッチアップし、自社のビジネスモデルにAPIを取り入れることで、競争優位性を高める必要があります。
2023年、AI技術の進化がコミュニケーションの未来を塗り替えています。中でも、OpenAIが提供する「ChatGPT」は、業界内外で大きな注目を集めています。このAPIは、人と同じように自然な会話を実現し、多くの開発者やビジネスパーソンにとって、新しいコミュニケーションの形を提供しています。
ChatGPTのAPIの活用により、以下のような様々なビジネスシーンでの対話の質を高められます。
● 企業はカスタマーサポートの効率化
● FAQの即時応答
● アプリ内のユーザーエンゲージメントの向上
ChatGPTのAPIの活用により、企業はカスタマーサポートの効率化、FAQの即時応答、アプリ内のユーザーエンゲージメントの向上など、さまざまなビジネスシーンでの対話の質を高めることができます。しかし、APIの利用には費用が発生するため、予算の計画が必要です。また、データ保護の観点からも、ユーザーのプライバシーを確保するための対策が求められます。このようなAI技術の進化は、2023年のビジネストレンドとして大きな影響を持ち続けることが予想されますが、その利用には十分な注意が必要です。
以下の記事では、生成AIについて詳しく解説しています。生成AIでできることやおすすめのツールなども紹介しているので、ぜひご覧ください。
APIにもいくつか種類があり、多くの方が使うことになるのが、WEBの「API」つまりはWeb APIと呼ばれるものです。名前が特に変わっていないので、覚えやすいですね。
Web APIはその名の通り、Web上に公開されていて、外部から呼び出して利用が可能なAPIです。誰でも使用でき、かつ無料のものが多いので、多くのサービスがAPIを使っています。
例えば、身近な例でいうと、
などがあります。どの企業も一度は耳にしたことのある大きな企業です。データのじかんの読者の方であれば、複数のサービスを使っている方、アカウントを所有している方も多いことでしょう。
例えば、AmazonのAPIを利用すれば、自身のWebサイトで最新の売れ筋をすぐさまチェックすることができたりします。
続いて、いくつかの活用事例について詳しく解説します。
検索エンジンとして有名な「Google」は、数多くのAPIを開発・提供しています。
例えば、「Google Calendar API」は、Googleが提供しているGoogleカレンダーの各機能が使えるAPIです。お店の営業時間に使ったり、社内の会議の時間を共有したりすることで、無料で情報共有を不特定多数の人と可能にしてくれる優れものです。
その他、サイトを多言語化してくれるAPIやWebサイト内の情報を検索できるようになるAPIなど様々な機能を簡単に実現できるようになるAPIが用意されています。
大手ECサイトとして有名な「Amazon」もAPIを開発・提供しています。AmazonのAPIを使えば、以下のような機能が自社サイトに実装可能です。
● 商品の最新情報を表示
● 1日あたりの売上を表示
● 在庫を表示
その他、別のECサイトと連携したり商品を自動で登録したりする機能の開発が進められています。
X(旧Twitter)やFacebookなどの各種SNSでも、独自のAPIが開発・提供されています。何らかのサービスで、「SNSの情報でログインする」といった文言を見たことはないでしょうか?
近年、SNSの情報を使ってログインできるようになるAPIは、数多くのサービスで利用されています。
その他、一度に複数のSNSに登録できるようなAPIや自社サイト上でSNSの画面を表示させられるようなAPIも存在します。TogetterやNaverまとめなどのサービスもSNSと連携することで、サービスの利便性、そしてサービスに付加価値を付けているのが特徴です。
今更こんなことを言うのもなんですが、データはマーケティング領域に置いて大いに有益です。見ている人のデータや世の中の人がどのようなことに関心があるのか、などがデータで瞬時にわかります。
データを有益に活用するためにはできるだけ多くの人から集めた多くのデータがある方が良いわけですから、今後もWeb APIはたくさんのサービスに組み込まれサービス提供の代わりに情報を収集していくでしょう。(そして、有益すぎて規制され始めている、というのがGDPRやCCPAなどに現れているわけですね。)
Web APIは一般的には企業のWEBサイトから利用登録を行い、APIを取得します。使う企業ごとに利用登録が必要です。
Web APIは発行されたURLを貼り付けするだけで利用可能なので通常のAPIと比べて簡単です。とはいえ、WEB上で使うので、ある程度のHTML 5、CSS、JavaScriptの知識が前提として必要ではあります。
Web APIを使うときに、以下のようなものが登場したときには、利用の注意が必要です。
● APIキー(アクセスキー)
● APIシークレットキー
簡単に言うと、APIキーはログインの際のID名にあたる部分、APIシークレットはパスワードのようなものだと考えてもらえばわかりやすいかと思います。
これらの情報が悪意のある第三者に漏洩してしまった場合、データを勝手に書きかえられたり、個人情報やその他の機密情報を読み取られてしまったりする可能性があります。特に、金銭のやりとりが発生する場合は、勝手に送金や出金をされてしまう場合もあるでしょう。
そのため、下記3点は必ず守っておきましょう。
● APIキー・APIシークレットは部外者には絶対に教えない。
● 権限を選択する際に、出金権限・送金権限を付与しない。
● 他のサービスと同じキー・シークレットの組み合わせは使わない。
APIは信頼に値する有名企業が発行しているものも多く、個人でも気軽に利用できるものもあります。
今までは開発コストがかかり、非エンジニアがこのようなサービスに手を出すこと自体考えられないことだったと思います。
開発したとしても「使い方が複雑でわからない」「エラーが出る」など問題なく使いこなすことは困難でした。ですが、時は経ち、現在では個人レベルで使いこなせるAPIも多く登場しています。
プライベートでも使えそうなものから、営業や管理業務に使えそうなツールが今後も出てくるでしょう。
APIは複数のサービスを掛け合わせることを可能にする継手とも言うべきもので、我々の生活をより便利にするITやアプリのリーズナブルかつスピーディーな提供を実現します。
APIの利用用途は様々で、自社の業務効率の改善にも活用できますし、サービスとして提供することで自社に新たなイノベーションをもたらす、攻めと守りのDXを支える手段として注目が高まっています。
米IBMの試算によれば、APIエコノミーの規模は2018年で2兆2000億ドル(約250兆円)にも及んでおり、今後はAPIのニーズや需要の向上に伴い、無料のAPIだけではなく有料のAPIの流通がますます増加することが見込まれています。
以下の記事では、APIエコノミーについて詳しく解説しています。API開放のメリットや日本がAPIに向いている理由などについても紹介しているので、ぜひご覧ください。
今回の記事では、APIとは何か、Web APIとの違いや実用例、使い方などを取り上げてきました。
APIを使うことで、開発コストを削減しながらも、便利に使える社内サービスを自社でも組めるかもしれません。使いこなすためにはHTMLやCSSなどの基礎的なプラグミング用語、もしくはそれ以上の知識が求められる場面もありますが、言語を必要とせずに感覚的に使えるものも増えてきていますので、まずはAPIについてをこの機会に覚えておきましょう!
ITリテラシーやビジネス知識を学びたい方は「データのじかん」のコンテンツをぜひお読みください。「データのじかん」は、テクノロジーやデータで、ビジネスや社会を変え、文化をつくりあげようとする越境者のみなさまに寄り添うメディアです。
なお、「パソコン用語が多すぎてちょっとわかりづらい」という方は、先ほどの鎖国時代の出島の例に戻ってもらって、自分は日本と貿易をしたいと考えている外国のビジネスマンだったと仮定してみてください。
日本の港に直接出向いても言葉は通じず、そもそも外国とのやりとりは禁止されているわけですから、普通に考えると追い返されるだけです。しかし、出島へ行き、ある程度の外国語の知識のある担当の人と通じて正式な手続きを踏んで許可をもらい、こちら側の情報も向こうに提供することに同意すれば、出島を通じた貿易が可能になります。日本側は南蛮渡来の珍品を手に入れられ、あなたは日本の品々を母国へ持って帰れるようになるわけです。言ってみれば、APIというのは異なるプログラム間で発生する異文化コミュニケーションの仲介人という位置付けですね。
インターネットの世界にはAPIだけでなくオープンソースなどの文化もあり、意外と世界レベルの助け合いが成立しています。
ちなみに、日本で最初にバドミントンが伝承されたのも出島であった、と言われています。
また、以下の記事ではHadoopについて詳しく解説しています。Hadoopが広く使われるようになった理由や構成する要素についても紹介しているので、IT担当者は必見です。
(桑折和宗)
メルマガ登録をしていただくと、記事やイベントなどの最新情報をお届けいたします。
ChatGPTとAPI連携したぼくたちが
機械的に答えます!
何か面白いことを言うかもしれないので、なんでもお気軽に質問してみてください。
ただし、何を聞いてもらってもいいですけど、責任は取れませんので、自己責任でお願いします。
無料ですよー
30秒で理解!インフォグラフィックや動画で解説!フォローして『1日1記事』インプットしよう!