第3回 Web APIって何?

Web APIとJSON

Web上ではネットショッピング、ブログ、SNSなどさまざまなサービスが提供されています。これらのサービスの中にはWebブラウザから利用するだけでなく、サービスの機能の一部をプログラムから利用可能なAPI(Web API)として提供しているものもあります。Web開発者はWeb APIを利用したアプリケーションを開発したり、既存のWebサイトにWeb APIを利用した機能を追加することなどが可能です。

なお、Web APIを使用し、複数のサービスの機能を組み合わせたり、独自の機能を追加したサービスを構築することをマッシュアップと呼びます。

これらのWeb APIの多くはXMLで情報を返すものが多いのですが、中にはJSONで情報を返却するWeb APIも存在します。そこで、今回はJSONを使用するWeb APIの利用方法を紹介します。

Ajaxのクロスドメイン制約

しかし、Ajaxで使用するXMLHttpRequestにはセキュリティ上、そのHTMLファイルが置かれているドメインのサーバとしか通信できないという制約があるため、Ajaxアプリケーションから直接これらのWeb APIを利用することはできません(図1)。この制約をクロスドメイン制約と呼びます。もちろんサーバサイドでWeb APIの呼び出しを行って結果をコンテンツとして出力することは可能ですし、自分のドメインに別ドメインのWeb APIへのリクエスト・レスポンスを中継するプロキシを設置すればAjaxでこれらのWeb APIを利用することも可能です。

そこで登場するのがJSONPです。

JSONPとは上記のAjaxによるクロスドメイン制約を回避するために考案された手法で、<script>要素のsrc属性でJSONデータを引数に取る関数を呼び出す外部JavaScriptをインポートするというものです。これは<script>要素で外部JavaScriptファイルをインポートする場合に、別ドメインのファイルでも参照可能という仕様を利用しています。

説明だけではわかりにくいと思うので、次のページではJSONPを使用しているWeb APIの実例として、はてなブックマーク(http://b.hatena.ne.jp/)のWeb APIを試してみましょう。

また、今回紹介するサンプルはダウンロードできますので、このファイルを見ながら解説します。

今回のサンプルは以下よりダウンロードできます。
→ 「JSONを使ってみよう!」のサンプルファイル(33KB)

著者について

竹添 直樹

NTTデータ先端技術株式会社 竹添 直樹

NTTデータ先端技術に勤めるしがないプログラマ。最近はOSS、アジャイルをキーワードに活動しつつ、余暇を利用して書籍の執筆などを行っている。著書に独習JavaScript(共著、翔泳社刊)など。

この記事を評価する

2.5
平均: 2.5 (投票数: 2)
あなたの評価: なし

IT Leaders 毎月無料でお届けいたします

本誌は、読者登録いただくことにより、毎月無料でみなさまのお手元まで直接お届けいたします(書店などでは販売していません)。

企業の情報システムを担当する方々や事業部門のIT担当の方々、およびIT関連プロフェッショナルの方々を対象に、実践的に役立つ情報を掲載、幅広く業務にご活用いただけます。

IT Leaders新規購読お申し込みはこちらから