<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <dfn>Web API</dfn> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web</anchor> に関係する <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">API</anchor> です。
2つの意味でよく使われています。どちらの意味かは文脈で判断するしかありません。</p><section><h1>Web プロトコルによって提供される API</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサービス</anchor>などの機能を主に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> などを情報交換形式として使いつつ <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">API</anchor>
の形で提供されるものを <dfn>Web API</dfn> といいます。<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサービス</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webアプリケーション</anchor>などの類義語ですが、
人間の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>よりも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラム</anchor>からのアクセスが主な目的である点で異なっています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> 人間の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>が使う<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザ</anchor>上で動作する <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor>
から呼び出すことを目的としたもの、それ以外の任意の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラム</anchor>から呼び出すことを目的としたもの、
その両方を目的としたものがあります。</p><figure class="list"><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web APIの悪い設計</anchor></li></ul></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>以外からのアクセスを主要な用途としている点で、「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web</anchor>」
とは何かを考えさせられる題材でもあります。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webアプリケーション</anchor>の実装のための<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">エンドポイント</anchor>に対して
「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ</anchor>向け <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web API</anchor>」のような言い方もするようです。(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ネイティブ</anchor>)<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ</anchor>が
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web</anchor> の一部ではないのは明らかですが、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリ</anchor>より外側は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web</anchor>
ということになるのでしょうか。</p></section><section><h1>Web ブラウザによって提供される API</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザ</anchor>によって<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>に (主に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> に) 提供される <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">API</anchor>
を <dfn>Web API</dfn> といいます。<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM</anchor> も似た意味ですが、本来の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM</anchor>
は単に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>にアクセスする <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">API</anchor> を指すのに対し、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web API</anchor> はそれ以外の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">API</anchor>
も含めたより広範な意味となっています。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web API</anchor> の方が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM</anchor> より新しい呼び方として好まれることもあります。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> それでも、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM API</anchor> と呼ぶ方が意味が明確で良いかもしれません。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> かつては <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">W3C</anchor> に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web API WG</anchor> がありましたが、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WebApps WG</anchor> に発展的に改組されています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web API WG</anchor> の設置が<time>2006年 (平成18年)<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2006</attrvalue></time>。<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">憲章</anchor>はその前年<time>2005年 (平成17年) 11月<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2005-11</attrvalue></time>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> 当時は真新しい言葉だった気がします。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> というのもこれは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">W3C</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM WG</anchor> が解散して <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM API</anchor> の開発がストップしてしばらくたったタイミングで、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM WG</anchor> 外で新しく作られた or 提案された <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">API</anchor> の多くは「DOM」を称してなかったので、
それらを含めて「DOM API」という人と、新たに「Web API」と呼ぶ人が出てきて混在していた、
ということなのだと思います。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">
<anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM WG</anchor> の活動停止は<time xmlns="http://www.w3.org/1999/xhtml">2004年 (平成16年)<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2004</attrvalue></time>。
これで <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">W3C DOM</anchor> の歴史はほぼ幕を閉じた。
ところが世の中は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">W3C</anchor> とは違った動きを見せていて (というか <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">W3C</anchor> が世の中と別の方向に向かっていた)、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Ajax</anchor> が世界的に大流行したのが<time xmlns="http://www.w3.org/1999/xhtml">平成17(2005)年<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2005</attrvalue></time>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WHATWG</anchor> が始まったのも<time xmlns="http://www.w3.org/1999/xhtml">2004年 (平成16年)<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2004</attrvalue></time>。</comment-p></section><section><h1>メモ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> 「Web」という言葉の意味を考えれば <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4</anchor-internal> の方が「Web API」という語の相応しい意味のような気がしますが、
人口的には <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal> の意味の方が普及しているのかな? <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal> は Web 技術者以外のIT技術者も使うので。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> 
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal> も <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4</anchor-internal> も同じくらいの時期から安定して使われている意味なので、衝突してわかりにくいのは遺憾ながら、
どちらが正しい正しくないというのは適切ではないと思いますよ。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <cite xml:lang="en">WebAPI - MozillaWiki</cite>
( (<time>2012-07-30 20:48:00 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://wiki.mozilla.org/WebAPI">https://wiki.mozilla.org/WebAPI</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <cite xml:lang="en">API Design Principles</cite>
(<time>2015-11-14 00:42:49 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://w3ctag.github.io/design-principles/">https://w3ctag.github.io/design-principles/</anchor-external></p></section></body></html>