第3回 Web APIって何? その他1

来源:互联网 发布:黑马程序员ios视频 编辑:程序博客网 时间:2024/04/28 07:07

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を試してみましょう。

 また、今回紹介するサンプルはダウンロードできますので、このファイルを見ながら解説します。ダウンロード(http://www.thinkit.co.jp/images/article/70/3/7031.zip)(7031.zip/32.1KB)。


原创粉丝点击