API (Application Programming Interface) とは?
CircleCI Japan GK リージョナル マーケティング マネージャー
この記事では、IT用語でもよく使われる API (Application Programming Interface)とは?APIに関する全ての情報をわかりやすく解説しています。
APIとは?
API とは、Application Programming Interface (アプリケーション・プログラミング・インタフェース)の略です。使いたいサービスのAPIを呼び出すことで、自社アプリケーションやサービスから、当該機能を利用することができます。これにより、自社でゼロベースからその機能の開発をするのと比べ、開発時間やテストにかかる時間(つまりコスト)を短縮でき、また、APIが提供する新機能によるベネフィットを容易に享受することが可能になります。柔軟性の高いAPI を利用することで、その機能の実装方法を完璧に知らなくても、プロフェッショナルによって開発されたベストプラクティスを取り込むことを可能にしてくれる優れものです。そうすることで、今まで以上にイノベーションの機会を作ることができます。
例えば最近は様々なオンラインショップでAmazon Payを取り入れています。顧客は購入画面でAmazon Payを選択するだけで、住所やクレジットカード情報などをリクエスト(要求)し、レスポンス(応答)され、いちいち入力しなくても、それらが画面上で入力されるため、簡単に決済が可能になります。オンラインショップは顧客のクレジットカード情報を保持することがないため、顧客はより安全に買い物ができ、オンラインショップのサーバ管理コストも抑えられます。
![APIを図解で説明]
上の図を見てご覧の通り、APIの基本的なプロセスは「リクエスト(要求)」と「レスポンス(応答)」で構成されます。
APIの利点とメリットとは?
冒頭でもお伝えしたように API は特定の機能を自分で実装することなく、ベストプラクティスとして利用することを可能にしてくれます。したがって、API を活用することで製品やサービスを一から開発、テストする必要がなくなり、ソフトウェア開発のリソースの確保や負荷などを減らすことで様々な面でメリットがあります。
もう少し具体的なメリットについて以下をご確認ください。
メリット1:開発の効率化
API により、開発を一からする必要がないので、開発を効率よく進めることができます。自社サービスを開発する際は、一から始めるのが通常だと思いますが、サービスの一部分を API により利用することができます。例えば、ソフトウェアを運用している際に生じるエラーのみを通知する機能を API で連携して自社サービスの一部とすることができます。もし一つのサービスを全て開発しようとすると、とんでもない時間がかかってしまいますが、API を利用することで効率があがります。
メリット2:開発コストの削減
開発の効率化により開発にかける時間も工数も削減できるので、自然とコストも減ります。また、たとえ自社で一から開発してサービスを展開したとしても、バグやエラーが発生しますし、バージョンアップデートもしなくてはいけないです。なので、短期、中長期的に見ても開発コストは削減できると言えるでしょう。
メリット3:ユーザビリティがあがる
API を活用することで、多様なサービスを提供することが可能になります。例えば、メリット1で既述したエラー通知機能ですと、通知方法をメール、チャット、SMS(別会社のサービスとする)で行う場合は、各社の API を利用する必要があります。各社が導入している通知チャネルの API を活用・提供できれば大変便利ですよね。
メリット4:顧客満足度アップにつながる
迅速に新たなサービスを提供し続けるのは時間もコストもかかりますが、API を活用して顧客のニーズにあったサービスの提供をすることで、顧客満足度アップにつながります。
メリット5:セキュリティの強化
ソーシャルメディアなど利用中のアプリケーションでログインできるようにすることで、利便性もそうですが、セキュリティも強化することができます。自社のセキュリティレベルよりレベルが高いサービスを導入することで、ユーザーも安心できますし、セキュリティ強化に繋がります。
APIには多くの種類がある
ここまで API の全体的なことについてお伝えしました。実は API と言ってもさまざまな種類の API が利用可能です。ここでは、「WebAPI とは?」とWebAPI の活用事例、WebAPI の種類についてお伝えします。
WebAPI には、REST(REpresentational StateTransfer)、SOAP(Simple Object Access Protocol)、RPC(Remote Procedure Call) などがあります。
WebAPIとは?
WebAPI とは HTTP プロトコルを使用して、Web 上で API のやりとりを可能にした API を指します。WEB API を活用すると、個人や企業のサイトやアプリケーションに別サイトの特定の機能やデータなどの活用を可能にします。これも既述した通り、開発効率、費用削減、利便性アップにつながるメリットがあると考えて良いでしょう。
WebAPI の活用例
WebAPI の具体例として、オンラインショッピング サイトが分かりやすいです。Amazon や楽天では API を公開しています。そのため、Amazon や楽天の情報を自分のサイトに掲載することが可能になりました。これにより、個人事業主や企業では、アフィリエイト収益をあげるための手法の一つとして、大きな反響を呼びました。ブログ等を閲覧している際に「最安値」や「大特化」といった Amazon や楽天の広告が表示されているのをよく目にするかと思います。
別の例として、ソーシャルメディアがあげられます。ご自身がお使いのさまざまなWebサービスにログインする際に、ソーシャルメディアのログイン情報を活用されたご経験があるかたは多くいると思います。通常、Web サービスやスマートデバイスのアプリケーションを利用したい場合、会員登録を行い、新しいログイン情報を作成する必要があります。ソーシャルログインを活用できるサービスの場合は違います。 すでに登録済みの特定のソーシャルメディアのログイン情報でログインできます。これは、本来ある程度の手間を要する会員登録作業を省くことができます。新たなログイン情報を管理しなくても良いですし、一つのソーシャルアカウントさえ管理できていれば複数のデバイスから特定のアプリケーションへログインできるようになるのでユーザーにとっては嬉しいと思います。
Restとは?
RESTとは、REpresentational State Transfer(リプレゼンテーショナル・ステイトトランスファー) の略であり、Webサービスの設計モデル(ソフトウェアアーキテクチャー)です。プロトコルや標準のセットではなく、全世界共通の4つの原則から成り立っています。
4つの原則
- 原則1 アドレス可能性: 全ての情報を1つのURL(ウェブ上では通常URL)で表現できること。
- 原則2 ステートレス性: ステートレストは「状態がない」という意味で、全てのリクエストが完全に分離していて、やりとりが1回ごとに完結することです。セッションなどの状態管理が不要です。
- 原則3 接続性: 情報に別の情報へのリンク(ハイパーリンクなど)を含めることです。
- 原則4 統一インターフェース: インターフェース(HTTPメソッドの利用)の統一がされていることです。情報の取得(GET)、作成(POST)、変新(PUT)、削除(DELETE)といった操作一式は、全てHTTPメソッドを利用しています。
これら全ての原則に則ったWebサービスをRESTfulなサービスといいます。
REST APIとは?
RESTの原則にしたがって作られたAPIが、REST API(RESTful API) です。
REST APIでHTTPリクエスト(要求)が行われると、サーバでリクエスト(要求)に応じて処理が行われ、エンドポイント(ネットワークに接続されているパソコンやスマホなどの端末)にJSON (JavaScript Object Notation)、HTML、XLT、Python、PHP、プレーンテキストのいずれかの形式で送信されます。(近年は軽量なJSON形式が使われることが多い)そして、人間が視覚的に見やすい、文字や画像といった形でエンドポイントに表示されます。
REST APIにはヘッダとパラメータがあり、 HTTP メソッド(GET、POST、PUT、DELETE)でも重要な部分です。ヘッダとは、後に続くデータに関する説明書き部分です。要求ヘッダと応答ヘッダがあり、それぞれに独自の HTTP 接続情報とステータスコードがあります。パラメータとは、欲しい情報の条件です。ヘッダとパラメータには、リクエスト(要求)のメタデータ、承認、URI、キャッシュ、Cookie などに関する重要なID(識別子)情報が含まれています。
REST API 7つの条件
7つの REST APIの条件は以下の通りです。
-
クライアント、サーバー、リソースからなるサーバーアーキテクチャである
-
クライアントからは参照できない階層に整理する階層化システムである
-
標準化されたデータで情報を転送する(コンポーネント間で統一されたインタフェース)
-
リクエスト(要求)は HTTP リクエストで行われる
-
ステートレスである
-
キャッシュ可能なデータである(クライアントとサーバーのやり取りを効率化する)
-
コードオンデマンドである(プログラムをサーバーからクライアントが受け取り、それをクライアント上で実行するアーキテクチャスタイル)
REST APIは、URIとHTTPメソッドを使うことで、一貫性のあるリクエスト標準化ができ、どのリソースを操作しようとしているか一目でわかるようになります。 また、スケーラビリティ(規模や利用負荷などの増大に対応できる度合い)が向上するので、IoT (モノのインターネット) やモバイルアプリ開発に最適です。
SOAP とは?
SOAP とは、SimpleObject Access Protocolの略で、HTTPリクエストやレスポンスに XML フォーマットでデータを行うプロトコルです。なお、SOAP と REST API で混乱してしまう方が多いのですが、大きな違いとしては、SOAP がプロトコルなのに対して、 REST はアーキテクチャという点です。
まとめ
本ブログでは、「API とは?」をテーマに API の全体的なことについてお伝えさせていただきました。API を活用すれば開発済みのサービスを自社サービスと API 連携が可能となり、効率よくサービス展開ができるようになります。コスト面や効率面だけでなく、その他にも多くのメリットがあることを説明させていただきました。また、API には種類があることも既述いたしました。この情報を元に少しでも皆さんの参考になれば嬉しいです。これを機にぜひ皆さんも API をご活用されてみてはいかがでしょうか?
CircleCI が提供するAPIソリューション
CircleCI が提供する API ソリューションでアプリケーションまたは、システム内のアクション自動化ツールを作成してみましょう!