Web API の目的と技術要素 ①Web API とは

by 杉本和也 | 2024年10月28日 | 最終更新日: 2024年10月28日

Web APIの目的と技術要素 ①Web API とは

※本記事は Software Design 2022年8月号 Web API 特集 「第1章:Web API の目的と技術要素」の記事を再編集したものです。以下の章に分けて公開しています。

  • ①Web API とは(本記事)
  • ②Web API が求められる背景
  • ③Web API の開発に必要な技術要素
  • ④Web API の実例

近年、Web API の公開数が増えており、さまざまなWeb API が、あらゆるWeb サイトやサービスに組み込まれて利用されています。

本章では、これからWeb API の設計手法を学んでいくにあたって、おもな利用目的や需要といった背景に触れつつ、まずはHTTP やREST、そしてOpenAPI を始めとした主要な技術要素への理解を深めます。

世の中にAPI はどれだけ存在するのか?

突然ですが、みなさんはいま世の中にどれだけの数のAPI(API とWeb API の違いについては後述します)が公開されているかご存じでしょうか?

API の解説、情報サイトとして有名なProgrammableWeb には現在24,000件のAPI が登録されています(図1, 注1)。同サイトではX(Twitter)がAPI を公開した2006年(iPhone の発売は2007年ですね)ぐらいからAPI 情報の収集を始めており、2010年段階ではおよそ2,000件だったのが、ここ10年で10倍以上に数が増えています(注2)。

本記事では「Web API とは何か?」を理解し、API の件数が10倍にも膨れ上がっている要因、背景から現在におけるWeb API の立ち位置、ユースケースをとらえ直し、本特集を学ぶことの意義を一緒に確認します。

▼図1 ProgrammableWebに登録されたAPI 件数の推移

Web APIの目的と技術要素 ①Web API とは

私たちの身の周りでAPI はどのように使われているのか?

具体的にWeb API の理解を進めるうえで、本項ではスマートフォンを使ったX(Twitter)などのSNS への投稿や閲覧を例に「API」がどのように使われているのか確認してみましょう。

たとえば、あるSNS アプリで写真も含めた投稿をしたいとします。写真を投稿する場合、投稿画面でカメラを起動したり、すでに撮影した写真をアプリで確認したりするかもしれません。このとき、アプリからカメラ機能や写真のデータにアクセスするのにAPI が使われています。

アプリを起動した時点からもAPI が利用されています。現在のタイムラインの取得に内部で開発されているAPI を使っているはずでしょう。それらのAPI はサービス内部のサーバ上で提供され、アプリからリモートで利用する形になっています。そして、その通信は最終的にデータベースに対して読み込みや書き込みの処理を実施しています。

さらに、写真を投稿したあと、SNS の内部ではその写真データをクラウドサービス上で管理しているかもしれません。そのアップロード/ダウンロード処理にもAPI が利用されています。

X(Twitter) のようなSNS では、自身の機能を外部のサービスやソフトウェアから操作できるAPI も提供されています。みなさんも公式以外のアプリを通じてSNS を使ったことがある のではないでしょうか。

これらのケースから示されるAPI として、次の4種類が存在します。

1. ハードウェアAPI/OS API

カメラを起動して、写真を撮影し、そのまま写真をアップロードするという一連の流れの中 で、ハードウェアが提供するAPI やWindows やiOS などのOS が提供するAPI が利用されています。これらのAPI は「ハードウェアAPI」や「OS API(Windows API やiOS API)」にあたります。

2. インターナルAPI

    サービス内部のサーバ上で提供され、Web サイトやアプリといったフロントエンドからリ モートで利用するもの、もしくはサーバ上の処理の中でもある特定の機能(写真のリサイズなど)に特化し個別にリモートで呼び出し合うAPI がこの「インターナルAPI」にあたります。

    3. パブリックAPI(利用)

      昨今はAzure やGCP、AWS などのクラウドサービスのインフラストラクチャを利用することが多くあります。インフラストラクチャ以外にも翻訳機能や課金機能のサービスも同様で、それらの機能をリモートで利用するAPI がこの「利用側としてのパブリックAPI」にあたります。

      4. パブリックAPI(提供)

      外部のユーザーやデベロッパーのために提供され、そのサービスが持つ主要機能を外部のアプリやフロントエンドからリモートで呼び出せるAPI が「提供側としてのパブリックAPI」にあたります。

      このようにさまざまなシチュエーション別にAPI が提供されており、複数のAPI が組み合わされて使われています。

      API とWeb API の違い

      このようにAPI が数多く存在する中で、Web API とはどれにあたるのでしょうか?

      その理解のために、まず「API とは何か?」を確認しておきます。Wikipedia ではAPI について次のように解説されています(https://ja.wikipedia.org/wiki/)。 

      アプリケーションプログラミングインタフェース(API、英:Application Programming Interface)とは、広義ではソフトウェアコンポーネント同士が互いに情報をやりとりするのに使用するインターフェースの仕様である。

      ざっくりと言ってしまえば「ソフトウェア」のための「インターフェース」です。ちなみに 「UI」は「ユーザー」のための「インターフェース」です。

      たとえば顧客管理システムなどのソフトウェアであれば、UI を通じて顧客のデータを参照したり、新しい顧客を登録したりします。それに対して、プログラムはAPI を通じて顧客データの参照や登録を実行します。このように、サービスやソフトウェアの「データ」や「ビジネスロジック」を利用するためのインターフェースの1つがAPI です。

      そのユースケースが前述した4種類のAPI になり、その1つとして「Web API」が存在します。

      Web API はおもにHTTP(HTTPS)というネットワーク間通信のためのプロトコルを用いて、「リモート」でソフトウェア/サービスを操作するためのインターフェースのことです。

      外部のクラウドサービスを使うこと、内部でもクライアントとサーバのやりとりを橋渡しすること、外部にサービスの機能をリモートで提供すること、それらのユースケースがWeb API を活用して実現されています。ですので、前述の2.~4.のケースがWeb API にあたります。

      関連コンテンツ

      トライアル・お問い合わせ

      30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。