非プログラマーにとって、WebAPIは何か難解なものと受け取られがちです。しかし、WebAPIの重要な部分は、私たちの生活の身の回りを支える暗黙の約束から学ぶことができます。本稿では、スターバックスを例にとってAPIのポイントを説明します。

APIとはなにか?

 APIとは Application Programming Interface の略称であり、システム同士が連携するための様々な取り決めを指しています。WebAPIとは、Webの標準的な技術に沿って取り決めを定義したAPIです。もし読者がソフトウェア開発の経験がないのであれば、きっとこの説明を読んで難解な技術だと思われたかもしれません。しかし、APIの本質について知るのはさほど難しいことではありません。それは日常生活の中にあふれています。

 あなたがスターバックスでコーヒーを頼むところを想像しましょう。スターバックスでコーヒーを注文するのは簡単です。店員のいるカウンターの前に立ち、コーヒーの種類とサイズを告げ、お金を払い、コーヒーを受け取ります。ごくありふれた行動です。しかし、ここには暗黙に様々な取り決めが存在します。あなたは注文するために店員を探す必要も、お金は前払いか後払いかを気にする必要もありません。ここがスターバックスであれば、上に述べた注文方法は不変です。重要なことは、あなたがコーヒーを注文する店員が誰であれこの注文方法は変わらないということです。客も店員も、スターバックスでコーヒーを注文する手順を暗黙のうちに共有しています。

 CiNii国立国会図書館サーチなどの検索システムが提供するAPIの利用は、スターバックスでコーヒーを注文することと似ています。そこではどんなクエリで検索要求を投げれば検索結果がかえってくるのか、そのルールがあらかじめ決められています。スターバックスの店員と同じく、検索システムもまたリプレースによってシステムが変わることがあっても、このルールを実現する機能さえあれば、利用者は何も新たなことを覚えずして、今までと同じように検索サービスを利用することができます。このように、連携するシステムの内部実装やソフトウェアが変更されたとしても、今までの運用を維持できるような特性のことを「相互運用性」と呼びます。APIは、この相互運用性を実現するためのルールなのです。

APIと標準規格

 良いAPIは、皆がよく馴染んでいるルールに沿って決められています。CiNiiも国立国会図書館サーチも、検索用のAPIとして取り決めている「ルール」には、OpenSearchやSRU/SRWなどの国際的な標準規格を採用しています。スターバックスではコーヒーを注文するとき、様々なトッピングを追加することができます。その組み合わせは無数であり、ときには呪文のような複雑な組み合わせのトッピングを注文するヘビーユーザーもいます。記憶力のない筆者にはヘビーユーザーにはとてもなれそうもありませんが、筆者を含め誰もが享受できるメリットがスターバックスの注文方式にはあります。一旦客が自分の好みの組み合わせのトッピング注文方法を覚えてしまえば、少なくとも日本国内のどのスターバックスに行っても自分の好きなものを飲むことができるということです。もしスターバックスが店舗ごとにトッピングの種類も注文方法も全く違っていたら、客はトッピングを注文することはしたくなくなるでしょう。APIが標準規格を採用するメリットもこれに似ています。多くのシステムが共通の規格に基づいたAPIを提供することで、様々なサービスから同じ方法で情報を引き出すことができるのです。

参考文献

changelog

  • 2015-05-07 : 初稿
クリエイティブ・コモンズ・ライセンス
kunimiya 作『スタバで学ぶWebAPI』はクリエイティブ・コモンズ 表示 4.0 国際 ライセンスで提供されています。