Twilioブログ

今さら聞けない「API」とは?初心者にもわかりやすく解説

近年、サービス開発の現場では「API」というキーワードが頻繁に登場しています。エンジニアの方と会話をする中で、一度は聞いたことがある……という方も多いのではないでしょうか。

この記事ではAPIをよく知らない人に向けて、基本的な特徴から活用事例を紹介し、APIを利用することのメリット・デメリットについて解説します。また後半部分ではAPIの選び方や、Twilioを利用した活用事例について、具体例も交えながら詳しく説明していきます。

目次

APIとは

APIとは

APIは「Application Programming Interface」の略語です。3つの単語には、それぞれ次のような意味があります。

  • アプリケーション: パソコンやスマホの中で動くソフトのこと
  • プログラミング: プログラミング言語を利用して、パソコンやスマホに実行させる指示を出すこと
  • インタフェース:ITの分野では、機器を繋ぐ接続部分や接触する箇所のこと

つまりAPIとは、「2つのアプリケーションやソフトウェア同士が情報をやり取りする際に使用される、プログラミング上の窓口」と理解しておくと分かりやすいかもしれません。

ちなみにAPIの利用には、「自分で開発する」パターンと「提供されているサービスを利用する」パターンがあります。本記事では、提供されているAPIを使って自社サービスを開発するパターンについて詳しくご紹介していきます。

APIの定義

APIは先述の通り、ソフトウェア同士が情報をやり取りする際に使用されるインタフェースのことです。より細かく表現すると、アプリケーション同士が接続する際のプロトコルや接続部分の仕様を取り決めたもの、と定義されます。

アプリケーションの開発者は、APIを使ってアプリケーション間の連携がスムーズにおこなえるよう、意識してプログラムを作成します。

APIの仕組み

APIの仕組み

APIは、サービスを提供する人と利用する人の間で明確に役割が分かれます。

最初に、APIサービスを利用する人が、事前に定められた形式に従って使いたい機能や情報をまとめて「リクエスト(要求)」します。それに対してサービス側はリクエストを受け取ると、送信された条件を処理して「レスポンス(応答)」を返します。

リクエストの内容については、APIサービスの提供者側が必要な情報をまとめて定義し、利用者に提示します。

APIの種類

APIの種類

アプリケーションのさまざまな場面で利用が増えているAPIですが、環境によって、複数の種類に分類できます。

ここでは、APIの代表的な種類について紹介します。

Web API

APIの中でも、インターネットを経由して情報のやり取りがおこなわれるAPIを「Web API」と呼びます。

Web APIは、インターネット上で情報のやり取りに広く使われているHTTP/HTTPSを利用して、アプリケーション同士が接続する仕組みを提供します。使用するプログラミング言語の仕様に左右されず、汎用的に利用できることが大きな特徴です。

Web APIは連携に使用されるデータの形式によって、REST APIやSOAPなど、さらに細かく分類されるケースもあり、開発者が利用しやすいように定型化が進められています。

本記事ではこのWeb APIを例に、APIの活用事例やメリット・デメリット、さらに実際の使い方について詳しく紹介します。

OSが提供しているAPI

APIの中には、OS上でプログラミングをおこなうために用意されているものもあります。

たとえばWindows APIは、その名の通りWindows上でプログラミングをおこなうために用意されているAPIです。プログラムからWindowsの機能や情報を簡単に利用できるように、開発者に向けて提供されています。

近年ではAPIだけでなく、「.NET Framework」と呼ばれるWindows APIを用いた開発をおこなうためのアプリケーションフレームワークが提供されており、開発者がWindows APIを利用しやすくするための仕組み作りも進められています

ランタイムが提供しているAPI

そのほかにも、APIの中にはランタイム(プログラムを動かす環境)が提供しているものもあります。

たとえばプログラミング言語のJavaでは、アプリケーションを開発する際に必要になる標準機能がAPIとして提供されています。そのため、Javaで効率的に作業を進めるためには、APIの知識が必要です。

Java SE APIの仕様については、Javaの開発を行なっているアメリカのオラクル社が提供する開発者ガイドの中で詳しく紹介されています。JavaのAPIは多数公開されているため、APIのドキュメントの構造や読み方を確認しておくと利用しやすいでしょう。

Web APIを使うには?

Web APIを使うには?

Web APIを使う前に、あらかじめ知っておきたい基礎知識について紹介します。

HTTP、HTTPSについて

多くのWeb APIでは、利用者とサービス間の通信にHTTPもしくはHTTPSを使います。APIを利用する際には、まずHTTP通信の仕様を理解しておくとよいでしょう。

ちなみにWeb APIの場合、ソフトウェアの読み込みや加工の容易さを優先して、JSONやXMLなどテキストベースのデータが多く用いられます。一般的にHTTP通信のレスポンスにはわかりやすい構造のHTMLが採用されますが、Web APIの場合はその限りではない、という点に留意しておくとよいですね。

APIキーとシークレットについて

Web APIの多くは、「APIキー」や「シークレット」と呼ばれる、サービスに対する認証情報を使ってアクセスする必要があります。

APIキーやシークレットは、サービスを使用する場合のユーザーとパスワードのような役割を担う情報です。他人と共有したり、複数のサイトで使いまわしたりせず、厳重に管理しましょう

APIのサービス規約について

サービスとして提供されているAPIを利用する場合には、サービス提供事業者が指定する制限を厳守しなければなりません。またレートリミットと呼ばれる利用制限があったり、クエリを実行するための問い合わせの仕方に制限があったりする可能性も考えられます。

サービスが決めた制約に違反すると、最悪の場合は利用停止の制限を受けることもあります。事前にマニュアルを確認し、使い方を十分に理解してから利用しましょう。

APIの使い方

APIの使い方

続いては、APIを利用するまでの手続きの流れについて、代表的なケースを解説します。詳細な利用方法はサービスごとに異なりますので、利用したいAPIが決まったらきちんと調べておきましょう。

APIを提供しているサービスに登録する

利用したいAPIが決まったら、APIを提供している会社のサービスに登録しましょう。多くの場合、「API連携をおこなう予定のサイトURL」や「APIを利用するサイトの概要」などを求められます。

登録時に聞かれる内容は、APIを利用するための審査に使われる可能性があります。入力内容にミスがないように注意してください。

APIキーとシークレットを取得

サービスに登録したら、APIキーとシークレットが発行されます。これらはAPIを利用する際に必要なもので、忘れないように、また外部から見えないように管理しておきましょう。

実装

自社サービスで利用しやすいよう、API連携用に使われる固定情報を設定したら、いよいよAPIと連携した機能の実装をおこないます。使い方のドキュメントにしたがって、利用要求を出しましょう。送信内容が正しければ、サービス側で処理した結果を受け取れます

APIの選び方

APIの選び方

続いては、APIをどのように選んだらよいか、具体的な例を挙げながら紹介します。

作りたいものからどのAPIを使うか考える

サービスに追加したい機能がすでに決まっている場合は、イメージした内容を実現するために必要なキーワードで検索してみるとよいでしょう。

もし実装したい機能がすでにAPIとして公開されている場合には、同じ機能を開発する必要はありません。利用実績が豊富だったり、サービスの評判がよいサイトのAPIを利用したりできる場合は、積極的に採用するのも有効な手段と言えます。

開発のアイデア出しに活かせるAPIを選ぶ

インターネット上で検索してみると、世界中で数多くのAPIが公開されていることがわかります。APIを提供している企業やサービスはバラバラでも、それらを組み合わせて利用すれば、それまでにはなかった新しいアイデアが湧いてくるかもしれません

APIは目的や用途もさまざまです。利用方法を多く選べるような、アイデア出しに利用できるAPIを選びましょう。

よく使われているAPIの活用事例

よく使われているAPIの活用事例

インターネット上には著名なサービスのAPIが数多く公開されており、多くの開発者が利用できるようになっています。ここでは国内のサービス開発でよく利用されている、代表的なWeb APIについて紹介します。

Google API

検索サービスで有名なGoogleでは、数多くのAPIを公開しています。

たとえばGoogle MAP APIは、飲食店や美容室のホームページ等で頻繁に活用されているようです。店舗の住所情報を基に、Googleが提供する地図サービス「Google MAP」の画面を自社のホームページ上に表示できます

また翻訳機能を提供するTranslation APIは、翻訳したいサイトのHTMLを送るだけで、翻訳結果をレスポンスとして返してくれます。企業ホームページを多言語化したいケースにおいて人気を誇っています。

その他にも、検索ボタンを自社のホームページ上に設置してWebサイト内の情報を検索するためのAPIや、近年注目されている機械学習を簡単におこなえるようにするAPIなど、Webサービスが提供するさまざまな機能を簡単に実現するためのAPIを利用できます。

Amazon API

大手ECサイトのAmazonでは、自社のサービスを便利に活用するためのAPIを提供しています。このAPIを利用することで、Amazonに掲載されている商品の情報を自社サービス内で利用でき、結果として、以下の点が可能になります。

  • 商品の最新情報を表示する
  • 店舗運営者向けに、1日当たりの売上情報を開示する
  • 商品の在庫管理や登録を行う

Amazon以外にも同様のAPIを提供しているECサイトが増えてきたことから、複数のECサイト間で在庫情報や売上、そして顧客の購入情報等を一元的に管理したり、商品の登録を自動化したりするなど、ECサイトの管理に便利な機能の開発が進められています。

各種SNSのAPI

近年、多くのSNSでサービスを便利に活用してもらうためのAPIが提供されています。

会員制サイトの登録やECサイトの配送先情報の入力時に、FacebookやTwitterなど「SNSの情報を使ってログインする」といったボタンを見たことはありませんか?

登録時にSNS連携のボタンをクリックし、そこからSNSにログインすると、登録したい会員制サイトやECサイト側の個人情報登録画面にSNSに入力済みの住所情報などがコピーされます。これによって利用者は、面倒な個人情報入力の手間を省けるのです。

その他にも、1つのSNSに登録するだけで複数のSNSへ同時投稿できるようになったり、投稿内容を自社のサービス内に表示したりできるなど、便利なAPIが増えています。

APIを使うメリット

APIを使うメリット

APIを利用して機能を拡張することは、サービス開発する上で大きなメリットがあります。続いては、APIを使う代表的なメリットを4つ紹介します。

メリット①:データの二次利用

APIを利用すると、API提供者が保持しているデータを二次利用できます。膨大なデータの収集や登録、最新データへの更新といった自社でやるには大変な作業を、新規でおこなう必要がなくなるのです。

これによって実装したい機能の開発にのみ集中できるようになり、システムの機能拡大や精度の向上、またスピーディーな機能実装を実現できます。

メリット②:開発の効率化

APIによって実装済みの機能を活用することにより、開発効率を高められます

たとえば何かの機能を自社で初めから開発する場合、仕様の決定だけでもさまざまなデータ収集が必要になります。また作りたい機能が複雑な処理を必要とする場合、開発工数が大きくなるため、その分だけ機能実装が遅れてしまうことにもなるでしょう。

しかしAPIを活用すれば、サービス提供事業者側が用意している機能をそのまま利用できます。収集データも常に最新のものを利用できるため、開発を効率的に進められるのです。自社でおこなう作業が減り、開発スピードを速められれば、他の機能の開発にリソースを割り振ることも可能です。

結果としてシステム全体の開発効率が高まり、コスト削減に繋がるだけでなく、開発の品質向上にも役立てられます

メリット③:セキュリティ向上

API連携の使用は、セキュリティ面の向上にもつながります

例えば利用者の会員情報等を管理する場合、自社で独自に登録画面を作成するとなると、セキュリティを含めた機能についても一から構築しなくてはなりません。

しかしFacebookやTwitterといった世界基準の非常に高いセキュリティ対策をおこなっているAPIと連携すれば、会員情報はそれらのサービスのセキュリティレベルによって担保されます。独自に個人情報を管理するより、高いセキュリティを保つことが可能となる場合があるのです。

独自にセキュリティを高める開発をするより、有名企業のセキュリティレベルが高いAPIサービスを利用する方が強固になるケースもあるため、状況に応じて利用するとよいでしょう。

メリット④:ユーザビリティ向上

API連携を利用すると、システムの使いやすさの指標として利用されるユーザビリティの向上も見込めます

たとえばWEBサービスに新規登録する際、登録情報を一から入力していくのを面倒だと感じるユーザーも多いでしょう。しかしAPI連携を利用してすでに登録済みのサービスの情報を再利用できれば、登録にかかる時間も短縮されます

APIを使うデメリット

APIを使うデメリット

多くのメリットを持つAPIですが、利用していくうえで発生する可能性のあるデメリットもあります。どのような点を注意しておかなくてはならないか、代表的なものをご紹介します。

デメリット①:サービス停止に伴う不具合の発生

APIの機能は提供事業者にとって、あくまで提供事業者がおこなっているサービスの一部です。そのためサービス自体の終了に伴い、API機能が停止される可能性を十分に考慮しておく必要があるでしょう。

API機能が停止されると、当然APIを利用している自社サービスの機能にも不具合が発生すると予想できます。連携の際には注意しておきましょう。

デメリット②:トラブルによる不具合の発生

サービス提供事業者側の設備トラブルやネットワークトラブルなどの不具合によって、APIの機能停止が発生する可能性もあります。

自社の設備に異常がなくても、API機能に異常がある場合は自社サービスにも不具合が発生してしまいます。定期的にAPIの仕様変更がないか定期的にチェックをおこない、影響がありそうな場合は速やかに改修しましょう。

またパッチの適用など、機器の定期的なメンテナンス等によってサービスが中断するケースもあります。特に利用しているAPIが海外のサービスである場合、日本時間の日中帯にメンテナンスが実施される可能性もあるため、APIサービス側の稼働状況やメンテナンス予定を常に把握できるような仕組みを検討しておくとよいでしょう。

APIを使用するうえでの注意点

APIを使用するうえでの注意点

APIにリクエストを送るとき、APIキーやシークレットを求められた場合には注意が必要です。

具体的には、次のようなポイントに配慮してください。

  • ユーザー名やパスワードと同じように、他人には絶対に教えない
  • APIキーやシークレットの使いまわしはしない
  • APIキーやシークレットに付与される権限は、最低限に絞っておく

特にWeb APIの場合は、インターネット上のサービスにリクエストを送信することになります。セキュリティリスクを常に意識して、ユーザーやパスワードなどの認証情報と同じように厳重な管理を心がけましょう。

また利用したいAPIがどのようなセキュリティ対策をおこなっているのかも、事前に調べておくとよいですね。

コミュニケーションAPI「Twilio」のご紹介

twilio-wahtTwilio(トゥイリオ)」は世の中にあるさまざまなコミュニケーションチャネルを、WEB・モバイルアプリケーションと繋ぐクラウドコミュニケーションAPIです。

電話機能やビデオ機能を自社で一から開発するのには多大な工数がかかります。通信の暗号化といったセキュリティ対策など、考慮せねばならない点も多く、そのために実装を諦めてしまう企業も少なくありません。

しかしTwilioと連携すれば、それらの工数をすべてTwilio側が担ってくれます。開発者はただ数行のコードを自社プログラムに書き加えるだけで、さまざまなコミュニケーション機能を簡単に実装できるのです。

代表的なTwilioの機能

ここでは、多くのお客様にご利用いただいているTwilioの機能についてご紹介いたします。

Programmable Voice

Programmable VoiceはTwilioが提供する「クラウド電話API」です。受発信制御や通話録音、通話キューイングといった、電話に関するあらゆる機能をプログラムでコントロールできます。数行のコードを組み込むだけで、簡単に自社システムに電話機能を実装できるのです。

さらにProgrammable Voiceには、一般的な電話回線網(PSTN)だけでなく、SIPやWebRTCといったプロトコルで音声通話をおこなえるという特徴もあります。

また世界100カ国以上の電話番号をブラウザ上で取得できるのも大きな魅力です。通常、海外の電話番号を取得するには現地キャリアとの契約や現地の設備などが必要になります。しかしTwilioであればそれらが不要なため、世界中のどことでも手軽に通話をおこなえるのです。

より詳しく知りたい方は、ぜひ下記の記事もぜひご参照くださいませ。

Programmable SMS

Programmable SMSを利用することで、簡単にSMSの送受信環境を構築できます。日本の電話番号では主に二要素認証のパスコードを送信したり、ユーザーにリマインダーを送ったりといった活用方法があり、多くのお客様にご利用いただいています。

ちなみにTwilioでは世界100ヵ国の電話番号を取得でき、その中にはSMSに利用できる国の電話番号も多くあります。海外にはSMSが一般的なチャネルとして普及している国もあるため、そういった国ではSMSを双方向でのコミュニケーションに活用できます。全世界的にサービス展開を考えている方はぜひご検討ください。

より詳しく知りたい方は、ぜひ下記の記事もぜひご参照くださいませ。

【Twilio講座 入門編⑧】Programmable SMSを使ってSMSを送信してみよう!

Programmable Video

TwilioではWebRTCを基盤としたアプリ開発用SDK「Programmable Video」を提供しています。

こちらを利用することで、ブラウザやアプリ上で使える高品質・高機能なリアルタイムビデオ機能を簡単に構築していただけます。またインフラ部分はあらかじめTwilioで用意しているため、ビデオを活用したアプリケーションの開発に注力していただけるのも大きな特徴です。

Programmable Videoでは、用途やニーズに合わせて、以下3つのプランから必要なものをお選びいただけます。

  • Group Room:最大50人までのグループ通話が可能。
  • Peer to Peer:ブラウザ同士が直接やり取りを行う。最大10機まで接続可能。
  • WebRTC Go:1対1のビデオアプリケーションを構築・稼働できる無料プラン。

Twilio Verify

Twilio Verifyは、認証コードを生成し、「SMSまたは音声通話、メールで認証コードの送信および認証をおこなう」機能を提供するAPIです。登録されたユーザーの電話番号が本当に有効なものなのか、音声電話とSMSを用いて確認できます。

最大の特長は「開発の簡単さ」です。たった10行ほどのコードを追加するだけで、既存のアプリケーションに二要素認証を組み込めます。また認証サーバーの構築や運用も必要ないため、技術者の開発負担を大きく減らすことが可能です。

なおユーザーの個人情報については、サービスを提供されている企業さまにて保持・運用いただくことになります。

Twilio Verifyを用いた二要素認証・二段階認証の実装方法はこちら

まとめ

この記事では、サービス機能の開発に使われる事例が増えてきたAPIについて、その特徴や種類について解説し、具体的な活用事例を紹介しました。

APIの活用により、サービス開発の効率を高めたりセキュリティやユーザビリティを向上したりと多くのメリットを享受できます。一方で、メンテナンスやサービス終了と言った提供者側の都合に依存する部分もあるため、メリットとデメリットを充分に考慮した上で自社に取り入れる必要があります。

APIの基礎をキチンと理解し、よりよいサービス開発の検討に活用してみてくださいね。

Twilio 本部
Twilio 本部

KDDIウェブコミュニケーションズは、日本初のTwilioパートナーとして常に「開発者目線」を大切にしており、ブログ記事がお役に立てれば幸いでございます。

Twilioサインアップ

Share!!

  • お役立ち情報
  • イベント情報
  • 相談会申込
  • 導入事例