公開日:2022.04.18
更新日:2024.07.24
まとめ
公開日:2022.04.18
更新日:2024.07.24
KDDIウェブコミュニケーションズ
近年、サービス開発の現場では「API」というキーワードが頻繁に登場しています。エンジニアの方と会話をする中で、一度は聞いたことがある……という方も多いのではないでしょうか。
この記事ではAPIをよく知らない人に向けて、基本的な特徴から活用事例を紹介し、APIを利用することのメリット・デメリットについて解説します。
APIは「Application Programming Interface」の略語です。3つの単語には、それぞれ次のような意味があります。
つまりAPIとは、「2つのアプリケーションやソフトウェア同士が情報をやり取りする際に使用される、プログラミング上の窓口」と理解しておくと分かりやすいかもしれません。
ちなみにAPIの利用には、「自分で開発する」パターンと「提供されているサービスを利用する」パターンがあります。本記事では、提供されているAPIを使って自社サービスを開発するパターンについて詳しくご紹介していきます。
APIは先述の通り、ソフトウェア同士が情報をやり取りする際に使用されるインタフェースのことです。より細かく表現すると、アプリケーション同士が接続する際のプロトコルや接続部分の仕様を取り決めたもの、と定義されます。
アプリケーションの開発者は、APIを使ってアプリケーション間の連携がスムーズに行えるよう、意識してプログラムを作成します。
APIは、サービスを提供する人と利用する人の間で明確に役割が分かれます。
最初に、APIサービスを利用する人が、事前に定められた形式に従って使いたい機能や情報をまとめて「リクエスト(要求)」します。それに対してサービス側はリクエストを受け取ると、送信された条件を処理して「レスポンス(応答)」を返します。
リクエストの内容については、APIサービスの提供者側が必要な情報をまとめて定義し、利用者に提示します。
アプリケーションのさまざまな場面で利用が増えているAPIですが、環境によって、複数の種類に分類できます。
ここでは、APIの代表的な種類について紹介します。
APIの中でも、インターネットを経由して情報のやり取りが行われるAPIを「Web API」と呼びます。
Web APIは、インターネット上で情報のやり取りに広く使われているHTTP/HTTPSを利用して、アプリケーション同士が接続する仕組みを提供します。使用するプログラミング言語の仕様に左右されず、汎用的に利用できることが大きな特徴です。
Web APIは連携に使用されるデータの形式によって、REST APIやSOAPなど、さらに細かく分類されるケースもあり、開発者が利用しやすいように定型化が進められています。
本記事ではこのWeb APIを例に、APIの活用事例やメリット・デメリット、さらに実際の使い方について詳しく紹介します。
APIの中には、OS上でプログラミングを行うために用意されているものもあります。
たとえばWindows APIは、その名の通りWindows上でプログラミングを行うために用意されているAPIです。プログラムからWindowsの機能や情報を簡単に利用できるように、開発者に向けて提供されています。
近年ではAPIだけでなく、「.NET Framework」と呼ばれるWindows APIを用いた開発を行うためのアプリケーションフレームワークが提供されており、開発者がWindows APIを利用しやすくするための仕組み作りも進められています。
そのほかにも、APIの中にはランタイム(プログラムを動かす環境)が提供しているものもあります。
たとえばプログラミング言語のJavaでは、アプリケーションを開発する際に必要になる標準機能がAPIとして提供されています。そのため、Javaで効率的に作業を進めるためには、APIの知識が必要です。
Java SE APIの仕様については、Javaの開発を行なっているアメリカのオラクル社が提供する開発者ガイドの中で詳しく紹介されています。JavaのAPIは多数公開されているため、APIのドキュメントの構造や読み方を確認しておくと利用しやすいでしょう。
Web APIを使う前に、あらかじめ知っておきたい基礎知識について紹介します。
多くのWeb APIでは、利用者とサービス間の通信にHTTPもしくはHTTPSを使います。APIを利用する際には、まずHTTP通信の仕様を理解しておくとよいでしょう。
ちなみにWeb APIの場合、ソフトウェアの読み込みや加工の容易さを優先して、JSONやXMLなどテキストベースのデータが多く用いられます。一般的にHTTP通信のレスポンスにはわかりやすい構造のHTMLが採用されますが、Web APIの場合はその限りではない、という点に留意しておくとよいですね。
Web APIの多くは、「APIキー」や「シークレット」と呼ばれる、サービスに対する認証情報を使ってアクセスする必要があります。
APIキーやシークレットは、サービスを使用する場合のユーザーとパスワードのような役割を担う情報です。他人と共有したり、複数のサイトで使いまわしたりせず、厳重に管理しましょう。
サービスとして提供されているAPIを利用する場合には、サービス提供事業者が指定する制限を厳守しなければなりません。またレートリミットと呼ばれる利用制限があったり、クエリを実行するための問い合わせの仕方に制限があったりする可能性も考えられます。
サービスが決めた制約に違反すると、最悪の場合は利用停止の制限を受けることもあります。事前にマニュアルを確認し、使い方を十分に理解してから利用しましょう。
続いては、APIを利用するまでの手続きの流れについて、代表的なケースを解説します。詳細な利用方法はサービスごとに異なりますので、利用したいAPIが決まったらきちんと調べておきましょう。
利用したいAPIが決まったら、APIを提供している会社のサービスに登録しましょう。多くの場合、「API連携を行う予定のサイトURL」や「APIを利用するサイトの概要」などを求められます。
登録時に聞かれる内容は、APIを利用するための審査に使われる可能性があります。入力内容にミスがないように注意してください。
サービスに登録したら、APIキーとシークレットが発行されます。これらはAPIを利用する際に必要なもので、忘れないように、また外部から見えないように管理しておきましょう。
自社サービスで利用しやすいよう、API連携用に使われる固定情報を設定したら、いよいよAPIと連携した機能の実装を行います。使い方のドキュメントにしたがって、利用要求を出しましょう。送信内容が正しければ、サービス側で処理した結果を受け取れます。
続いては、APIをどのように選んだらよいか、具体的な例を挙げながら紹介します。
サービスに追加したい機能がすでに決まっている場合は、イメージした内容を実現するために必要なキーワードで検索してみるとよいでしょう。
もし実装したい機能がすでにAPIとして公開されている場合には、同じ機能を開発する必要はありません。利用実績が豊富だったり、サービスの評判がよいサイトのAPIを利用したりできる場合は、積極的に採用するのも有効な手段と言えます。
インターネット上で検索してみると、世界中で数多くのAPIが公開されていることがわかります。APIを提供している企業やサービスはバラバラでも、それらを組み合わせて利用すれば、それまでにはなかった新しいアイデアが湧いてくるかもしれません。
APIは目的や用途もさまざまです。利用方法を多く選べるような、アイデア出しに利用できるAPIを選びましょう。
インターネット上には著名なサービスのAPIが数多く公開されており、多くの開発者が利用できるようになっています。ここでは国内のサービス開発でよく利用されている、代表的なWeb APIについて紹介します。
検索サービスで有名なGoogleでは、数多くのAPIを公開しています。
たとえばGoogle MAP APIは、飲食店や美容室のホームページ等で頻繁に活用されているようです。店舗の住所情報を基に、Googleが提供する地図サービス「Google MAP」の画面を自社のホームページ上に表示できます。
また翻訳機能を提供するTranslation APIは、翻訳したいサイトのHTMLを送るだけで、翻訳結果をレスポンスとして返してくれます。企業ホームページを多言語化したいケースにおいて人気を誇っています。
その他にも、検索ボタンを自社のホームページ上に設置してWebサイト内の情報を検索するためのAPIや、近年注目されている機械学習を簡単に行えるようにするAPIなど、Webサービスが提供するさまざまな機能を簡単に実現するためのAPIを利用できます。
大手ECサイトのAmazonでは、自社のサービスを便利に活用するためのAPIを提供しています。このAPIを利用することで、Amazonに掲載されている商品の情報を自社サービス内で利用でき、結果として、以下の点が可能になります。
Amazon以外にも同様のAPIを提供しているECサイトが増えてきたことから、複数のECサイト間で在庫情報や売上、そして顧客の購入情報等を一元的に管理したり、商品の登録を自動化したりするなど、ECサイトの管理に便利な機能の開発が進められています。
近年、多くのSNSでサービスを便利に活用してもらうためのAPIが提供されています。
会員制サイトの登録やECサイトの配送先情報の入力時に、FacebookやTwitterなど「SNSの情報を使ってログインする」といったボタンを見たことはありませんか?
登録時にSNS連携のボタンをクリックし、そこからSNSにログインすると、登録したい会員制サイトやECサイト側の個人情報登録画面にSNSに入力済みの住所情報などがコピーされます。これによって利用者は、面倒な個人情報入力の手間を省けるのです。
その他にも、1つのSNSに登録するだけで複数のSNSへ同時投稿できるようになったり、投稿内容を自社のサービス内に表示したりできるなど、便利な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キーやシークレットを求められた場合には注意が必要です。
具体的には、次のようなポイントに配慮してください。
特にWeb APIの場合は、インターネット上のサービスにリクエストを送信することになります。セキュリティリスクを常に意識して、ユーザーやパスワードなどの認証情報と同じように厳重な管理を心がけましょう。
また利用したいAPIがどのようなセキュリティ対策を行っているのかも、事前に調べておくとよいですね。
Vonageは、電話やSMS・ビデオ・チャット・SNSなど、さまざまなコミュニケーションチャネルをWeb・モバイルアプリケーションやビジネスへ組み込めるクラウドAPIサービスです。自動電話発信や電話転送、対話型IVR、自動SMS通知や二要素認証など、多岐にわたるサービスを実現できます。
コミュニケーションに関わる機能を自社で1から開発するのには多大な工数がかかります。通信の暗号化といったセキュリティ対策など考慮せねばならない点も多く、そのために実装を諦めてしまう企業も少なくありません。
しかしVonage APIと連携すれば、それらの工数をすべてVonage側が担ってくれます。お客様側でのインフラ開発はもちろん、ネットワークの構築・維持コストも必要ありません。ただ数行のコードを書き加えるだけで、自社サービスをマルチチャネル化できるのです。
まとめ
この記事では、サービス機能の開発に使われる事例が増えてきたAPIについて、その特徴や種類について解説し、具体的な活用事例を紹介しました。
APIの活用により、サービス開発の効率を高めたりセキュリティやユーザビリティを向上したりと多くのメリットを享受できます。一方で、メンテナンスやサービス終了と言った提供者側の都合に依存する部分もあるため、メリットとデメリットを充分に考慮した上で自社に取り入れる必要があります。
APIの基礎をキチンと理解し、よりよいサービス開発の検討に活用してみてくださいね。