━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
かみうまメルマガ #045(2009/12/05)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
うちやまです。こんにちは!
ずいぶん久しぶりとなってしまいましたが、今月のメルマガをお送りします。
■はじめに
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
今回のテーマは「API」です。
10月の「IT基礎知識講座」でも取り上げた言葉なのですが、そのときは
抽象的・概略的な説明にとどまり、具体的なイメージをお伝えできずじ
まいでした。
また、APIとは、もともとはオペレーティング・システム(OS:
Operating System)などに関して使われていた言葉ですが、最近は、
Web上のサービスを外部のプログラムから利用するためのAPIというもの
も広まってきました。
今回のメルマガでは、そのあたりをもう少し詳しく取り上げていきたい
と思います。ちょっと地味な話題ですが、よろしくお付き合いください。
■APIとは
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
まずは、Web APIの話は脇へ置き、APIという言葉のもともとの意味を見
ておきましょう。
API(Application Programming Interface)とは、OSなどのプログラム
が提供する機能を別のプログラムから利用するための命令や規則を定め
たものです。
たとえば、あるOS上で動作するアプリケーションをプログラマが開発す
るときには、そのOSが定めるAPIを利用することによって、OSが持つ機
能を簡単に操ることができます。
○
http://searchexchange.techtarget.com/...78,00.html
| An application program interface (API - and sometimes
| spelled application programming interface) is the specific
| method prescribed by a computer operating system or by an
| application program by which a programmer writing an
| application program can make requests of the operating
| system or another application.
□内山試訳(ざっくり訳)
API(アプリケーション・プログラム・インターフェイス)とは、
プログラマがアプリケーション・プログラムを作成するときに利用
するもので、OS(オペレーティング・システム)やアプリケーショ
ン・プログラムで定められています。APIを利用することで、OSや
他のアプリケーションに対して要求を送ることができます。
プログラマは、APIで定められた命令を、プログラムのソースコード
(source code)から呼び出して利用します。
具体例で説明しましょう。
Windowsでアプリケーションを使っていると、「abcde.txt への変更を
保存しますか?」といったダイアログ・ボックス(dialog box)をよく
見かけます。メッセージの下に「はい」「いいえ」などのボタンが表示
された、小さなウィンドウです。
こうしたダイアログ・ボックスは、メッセージの内容やボタンの種類は
状況に応じて変わりますが、形状や表示の仕方はどのアプリケーション
でも同じです。
このように、複数のアプリが共通で利用する定型的な機能を提供するの
がAPIの役目です。各アプリは、APIで定められた命令を呼び出すだけで、
その機能を簡単に利用できます。
たとえば、ダイアログ・ボックスを表示する場合なら、
x = ShowDialogBox("○○○○への変更を保存しますか?", YesNo);
のような命令をソースコードの中に書いておくだけでOKです。
(※上記の命令は架空のものです。Windowsの実際のAPIとは異なります)。
ダイアログ・ボックスを1つ表示するだけでも、もしプログラマが自前
ですべて処理するとなったら、けっこう厄介です。ウィンドウの大きさ
をどれくらいにするか、背景色をどうするか、ユーザーのボタン・クリッ
クをどう検知するか、など、処理の隅々まですべて自分で面倒を見なく
てはいけないからです。
しかし、APIの命令を使うおかげで、プログラマはそんな苦労から解放
され、その分、アプリケーション独自の処理の開発に専念できるという
わけです。これがAPIの効能です。
○
http://www.wisegeek.com/what-is-an-api.htm
| Application programming interfaces ensure that software
| developers do not have to start building applications from
| scratch. There is no need to build one application that
| performs every function. The application can transfer
| certain responsibilities to another application.
(一部改変)
□内山試訳(ざっくり訳)
APIを使えば、アプリケーションをゼロから開発する必要はありま
せん。すべての処理を1つ残らず実装しなくてもよいからです。つ
まり、一部の機能は別のアプリケーションに任せられます。
APIでは他にも、ファイル処理、通信処理、入出力処理など、多数のア
プリで共通して必要となるあらゆる処理に応じた命令が多数用意されて
おり、命令の呼び出し方も細かく規定されています。ちなみに、そうし
た仕様書や開発ツール等を取りまとめてパッケージ化したものを「SDK
(Software Development Kit)」といいます。
※ここまでは「命令」という言い方をしてきましたが、先ほどコードの
例に挙げたようなものは、厳密には「関数」(function)と呼びます。
カッコに入れて指定するデータは「パラメータ」(parameter)や
「引数(ひきすう)」(argument)といい、そこから返る結果(先ほ
どの例ではxとして受け取っている値)は「戻り値」(return value)
といいます。
WindowsなどのAPIでは、どの関数がどんな機能を持つのかや、渡すべき
引数と得られる戻り値について、細かく規定されています。
■Web APIとは
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ここまでの説明は、OSなどの機能をアプリケーションから呼び出す場合
のAPIの役割でした。つまり、APIを呼び出す側のアプリも、呼び出され
る側のOSも、同じマシン上に存在しているケースでした。
これに加えて、数年前から広く使われるようになったのが、「Web API」
と呼ばれるものです。インターネット上で動作するサービスの機能を別
のマシンのプログラムから利用するための命令や規則を定めたAPIのこ
とをいいます。
※Webについての話であることが明らかな文脈では、Web APIのことを単
に「API」と呼ぶ場合もあります。
たとえば、GoogleはAPIを公開しています。これはつまり、Googleの機
能を独自プログラムから利用するための手段を用意し、その方法を公開
しているということです。Web検索、地図、カレンダーなど、同社が提
供する多彩なサービスを、自作のプログラムの中から利用できます。た
とえば、Googleの機械翻訳機能のAPIを使えば、プログラムの中から翻
訳を簡単に実行できます。
他にも、Yahoo!、Amazon、Twitterなど、名の知れた大手のWebサービス
の多くは、APIを公開しています。
Web APIを利用する側のプログラムは、パソコン上の単独のアプリケー
ションでもいいですし、それ自体がWeb上のサービスでも構いません。
つまり、既存のサービスの機能を利用しつつ、それに付加機能を付けた
サービスを開発して、Web上で公開できます。
こんなふうに、大手サイトの「すごい機能」を自前のサイトに組み込ん
でカスタマイズできるのが、Web APIの大きなメリットです。
○
http://communication.howstuffworks.co...ncing1.htm
| An application-programming interface (API) is a set of
| programming instructions and standards for accessing a
| Web-based software application or Web tool. A software
| company releases its API to the public so that other
| software developers can design products that are powered by
| its service.
|
| For example,
http://Amazon.com released its API so that Web site
| developers could more easily access Amazon's product
| information. Using the Amazon API, a third party Web site
| can post direct links to Amazon products with updated
| prices and an option to "buy now."
□内山試訳(ざっくり訳)
API(アプリケーション・プログラミング・インターフェイス)と
は、WebベースのアプリケーションやWebツールをプログラムから利
用するための命令や規約の集合体です。ソフトウェア企業がAPIを
公開するのは、自らのサービスを利用した製品やサービスを外部の
ソフトウェア開発者が作成できるようにするためです。
たとえばAmazon.comは、Webサイト開発者がAmazonの商品情報を簡
単に利用できるようなAPIを公開しています。これを使うことで、
Amazon以外のWebサイトにAmazonの商品へのリンクを掲載し、最新
の価格や「今すぐ購入」ボタンを表示できます。
■まとめ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
このように、APIとはプログラム開発に関連する用語です。
しかし、最近のWeb業界では、サービスの利用者拡大や開発者取り込み
のための戦略の一環として、APIを公開するケースが多くなっています。
このため、一般向けのITニュースなどの文章でも、APIという用語を目
にする機会が増えている気がします。
実際にプログラムを組んでみないと、APIの具体的なイメージはつかみ
にくいかもしれませんが、大ざっぱな意味だけでも、きちんと押さえて
おいてください。
以上、今回のテーマはAPIでした。
■編集後記
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
以前メールでちらっとご紹介しましたが、10月から、
ミニブログサービス「Twitter」を始めました。
日々のどうでもいい小ネタ話が中心ですが、ちょくちょく
更新してますので、よろしければご覧ください。
http://twitter.com/tuchiyama
来週 12月12日(土) はIT翻訳実践講座スクーリングです。
そちらもよろしくお願いします。
---------------------------
□発行元:かみうま翻訳倶楽部 内山卓則
http://www.kamiuma.net
---------------------------