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

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

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

※本記事は Software Design 2022年8月号 Web API 特集 「第1章: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 にあたります。

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

      関連コンテンツ