Twilioブログ

APIの種類やプロトコルの特徴を詳しく解説

近年、サービス開発の現場でよく聞かれるようになった「API」。自社開発の効率化を図るうえで欠かせない、重要な存在となっています。

しかし一口に「API」と言っても、その種類はさまざま。そこで本記事では現在広く使われているAPIについて、どのような種類があるのか? それぞれにどのような特徴があるのか? を詳しく解説していきます。

目次

APIとは

APIとは

APIは「Application Programming Interface」の略称で、サービスの機能そのものやサービス内に持っている情報を、APIを通じて外部のプログラムから利用できるようにするための接点のことを指します

APIを利用することで、他社サービス(API提供元)の機能の一部を自社サービスに組み込んで提供することができます。つまりAPIに備わっている機能を独自に作成する必要がなくなり、開発コストを大幅に削減できるのです。

またサービス提供者にとっても、多くの人にAPIを使ってもらうことで、自社サービスの知名度を向上させられるというメリットがあります。

APIの種類

APIの種類

APIには、利用用途や特性によっていくつかの種類があります。

Web API

Web APIは、Webサービス機能の一部として提供されているAPIです。アプリケーションをAPIで連携する事例の中でも、特に多く活用されています。

GoogleやAmazon、Facebookといった誰もがよく知っている大企業からも、Web APIが数多く提供されています。サービスを開発中の企業はこれらを取り入れることで、自社の機能を簡単かつ効率的に拡大しているのです。

Web APIは、インターネット上で一般的に使われているHTTPS通信によってデータのやり取りをおこないます。利用するパソコンのOSやプログラミング言語には依存せず、ありとあらゆる環境からアクセスできるようになっています。

OSが提供しているAPI

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

たとえばWindows APIは、サービスを開発中の企業がWindows上でプログラミングをおこなう際に利用するAPIです。プログラムからWindowsの機能や情報を簡単に利用できるように、Windowsの生みの親であるMicrosoftから、開発者に向けて提供されています。

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

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

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

たとえばプログラミング言語Javaでは、アプリケーションを開発するために必要な標準機能や拡張機能の多くをAPIとして提供しています。そのため開発者は自然とAPIのルールに従って、プログラミングをおこなえるようになっています。

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

Web APIで使用されるプロトコル

Web APIで使用されるプロトコル

Web APIでは、利用者とAPIサービス間の通信に、Web上でよく使われるHTTPやHTTPSが用いられます。異なるOSやプログラミング言語間のやりとりも、Web通信では統一の仕様で処理できるようになっています。

それに伴い、これまでアプリケーション間のやり取りに使われるプロトコル(=通信に関する規格)も多数定義されてきました。続いては、Web APIの代表的なプロトコルを4つ紹介します。

HTTP、HTTPS

HTTPはWebサーバとWebブラウザがデータをやりとりするのに使われるプロトコルです。先述の通り、多くのWeb APIにおいては、利用者とサービス間の通信に使われています

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

XML-RPC

RPC(リモートプロシージャコール)は、プログラムの中で通信相手のコンピュータに対して処理を依頼したり、結果を返したりするための取り決めを意味します。RPCを使うと、リモートサーバーに置かれているメソッドを実行できるようになります。

RPCの中でも、クライアントとサーバー間のデータのやり取りにXMLが利用されるタイプをXML-RPCと呼びます。APIで利用されるプロトコルにおいて、最も古い歴史を持っています。

JSON-RPC

JSON-RPCは、XML-RPCと同じく、RPCを実現するプロトコルの一つです。名前の通り、サーバーとクライアント間のデータのやり取りにJSONを利用します。

JSONは人間にもコンピュータにも扱いやすいシンプルなデータフォーマットです。この特性からJSON-RPCは、従来のWebブラウザとサーバー間や、モバイルアプリ等のクライアントとサーバー間の通信に多く使われます。

さらに近年増え続けているマイクロサービスでは、アプリケーションやサーバー間でデータ連携が頻繁におこなわれています。このような場面でも、シンプルで扱いやすいJSON-RPCは、連携するデータの作成や受け取った後の処理が簡単におこなえるという特性を活かして活用の幅を広げています。

SOAP

SOAPは「Simple Object Access Protocol」の略称で、アプリケーション間のネットワークを介した連携を標準化するためのプロトコルです。クライアントとサーバー間の通信には、XMLを利用します。

XML-RPCを拡張したプロトコルで、XML-RPCより複雑なデータを扱うケースが多く、XMLドキュメントとXMLスキーマを定義して利用されます。

どれがよいのか?

ここまで代表的なWeb APIのプロトコルを紹介しましたが、実際に利用を検討する場合には、どれを選択すればよいのか迷うはずです。

一つの選択基準として考えられるのは「制約が強い」もしくは「柔軟性が高い」かどうかです。API仕様においては、RESTやSOAPは制約が強く、RPCは柔軟性が高いのが特徴です。

一般的なWebサービスはAPI利用者の幅が広いため、制作者が想定していなかったような内容の問い合わせにも対応する必要が出てきます。その場合、多少の制約があっても「REST」や「SOAP」を選び、制作者の意図しない動作が発生しにくい厳格な設計にするのがよいでしょう。

反対に、利用者が社内や開発者など信用できる接続元に絞られる場合は、APIの柔軟性を優先して「XML-RPC」や「JSON-RPC」を選定するのがよいでしょう。

Web APIの種類

Web APIの種類

APIの中でも特に幅広く利用されているWeb APIは、セキュリティレベルや提供事業者と利用者の関係などから、大きく4つのタイプに分類できます。

Open API

Open APIは、外部APIまたはパブリックAPIとも呼ばれる、外部から利用しやすい形でAPIを公開するために要求事項を仕様化したものです。セキュリティ対策が緩和されている分、開発者がデータにアクセスしやすいため、手軽かつ迅速な機能実装に役立ちます。

Open APIのAPI仕様はYAMLまたはJSONで記述できます。なおこのYAMLとJSONはフォーマットの構造がわかりやすく、開発者にとって習得が容易な形式です

またOpen APIの中でもRESTアーキテクチャスタイルと呼ばれる考え方に準拠した、高い可用性かつ統一されたインタフェース仕様に沿って提供されるAPIを「REST API」といいます。RESTは、API機能を持つサーバーがクライアントからの要求を認識して応答しやすいように、RESTアーキテクチャスタイルと呼ばれる考え方に準拠することでAPI仕様の標準化を叶えるものです。

REST APIのサーバー条件

REST APIのサーバーは、次のような制約を満たしている必要があります。

  • HTTPのメソッドでデータ操作種別を判断する
  • ステートレスになっている
  • URIから操作対象のリソースを判別できる
  • レスポンスにはJSONもしくはXMLを利用する

OSやプログラミング言語に関係なく、問合せ方法やレスポンス仕様が一定のため、開発者にとって使いやすくなっています。

パートナーAPI

パートナーAPIは、提供事業者が特定の提携企業との連携を目的に提供するAPIです。Open APIとは異なり、一部の企業からのみアクセスを許可します。

パートナーAPIは、Open APIに比べてセキュリティを意識した接続方式が必要になります。その分、提供事業者と提携企業はより綿密に連携をおこなえるようになります。

たとえばNTTドコモでは、提携するパートナー企業に向けて「ドコモAIエージェントAPI」を提供しています。本APIはNTTドコモのパートナー企業にのみ公開され、パートナー企業はAPIを利用できるだけでなく、NTTドコモからビジネス支援も受けられます。

このように接続元を絞り、事業連携ツールの一つとして利用するAPIをパートナーAPIと呼んでいます。

内部API

内部APIは、自社の関係者以外には公開していない、企業内のみ利用を想定したAPIです。プライベートAPIとも呼ばれています。

接続元は内部オペレーションが利用できる範囲内に限定されます。そのため、自社システムの判定をする最低限のセキュリティ対策がおこなわれます。

内部APIの主な利用用途としては、企業内サービス間の連携や、事業所間のコミュニケーションが挙げられます。また同一サービス内でも、機能ごとのモジュールを連携する際に使われるケースもあるでしょう。

コンポジットAPI

コンポジットAPIは、コンポジット(合成)という単語で表されるように、複数のAPIを一つのAPIまたはメソッドで提供しているものを指します。

コンポジットAPIを利用することで、1つのAPI連携だけで複数のAPIを利用できるように実装できます。また1つのAPIがおこなった処理の結果を別のAPIに対する入力事項として引き渡すことで、複数の処理を継続する仕組みも実現可能です。

1つのAPIがハブのような機能を担ってくれるため、管理がしやすくなるというメリットもあります。

ちなみにAPIの合成方法や組み合わせ方には取り決めがありません。APIの開発企業によってさまざまです。

APIを使うメリット

APIを使うメリット

APIを利用してサービス間で連携することは、提供事業者と利用者それぞれにメリットがあります。どのようなものがあるか、主に上げられる4つのメリットをご紹介します。

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

APIを利用すると、APIサービス側の機能だけでなく、サービス側に登録されているデータを二次利用できます。

情報の二次利用を行うことで、膨大なデータの収集や登録、更新を新規でおこなう必要がなくなります。これによって実装したい機能の開発にのみ集中できるようになり、システムの機能拡大や精度の向上、またスピーディーな機能実装を実現できます。

近年は有償・無償を問わず、有用な情報がオープンデータとして公開されています。総務省を中心に「オープンデータを積極的に使うICTの活用推進」に取り組まれていることもあり、今後はデータの二次利用という観点でもAPI利用の幅が広がると見られています。

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

APIサービス側が作成した機能をそのまま活用できるため、利用者はサービス開発の効率化、スピード化を実現できます。また予定していた開発タスクが減ることで、必要な人員を別の作業に配置でき、チーム全体の効率化も期待できるでしょう。

そのほかにも、APIが提供している機能の品質は「APIサービス側が管理・維持してくれる」というメリットがあります。これによって利用者は自社開発した部分のみに注力できるため、結果としてサービス全体の品質向上にも繋がります。

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

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

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

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

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

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

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

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

APIの使い方

APIの使い方

続いては、実際にAPIを利用するまでの代表的な流れについて紹介します。必要な情報や操作の仕組みは、提供事業者によって異なるため、詳細は各企業へご確認ください。

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

Web APIはWebサービス機能の一部として公開されているケースがほとんどです。そのため多くの場合、APIの利用には、APIを提供しているWebサービスへの登録が必要になります。

登録の際には、APIを利用する予定のドメイン名や作業後の戻り先となるURLなどの情報が必要な可能性があるため、事前の確認をおすすめします。

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

登録が完了したら、APIを利用するために「APIキー」や「シークレット」と呼ばれる認証コードを取得できます。

これらのコードは、APIを利用するための「パスワード」のような役割を果たします。サービスによって「APIキー」と「シークレット」が両方必要になったり、どちらか一方で良かったりするため、仕様書を良く確認してみてください。

またサービス提供者側は顧客からの問い合わせの際、付与されているAPIキーやシークレットの情報を見て正当な利用者かどうかを判断することもあります。大切な情報ですので、外部に漏れることのないようしっかり管理しておきましょう。

3.実装

利用準備が整ったら、いよいよ自社サービスへ実装します。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の種類や特徴について、記事の後半ではWeb APIを例に利用するメリットや具体的な利用例について紹介しました。

APIを効率的に利用できれば、自社サービスの開発や拡大にとって大きな武器となるでしょう。

どのようなAPIと連携するのがよいか、検討する参考にしてみてください。

Twilio 本部
Twilio 本部

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

Twilioサインアップ-ブログフッターバナー

Share!!

この記事を読んだ人へのオススメ

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