Webサービス (WebAPI)

概要

Webサービスとはインターネットサービスを提供する企業等が、保有する情報資産を外部ネットワークを通じて開発者に提供する仕組み(サービス)です。利用には提供側が一定の制限(商用利用の制限や単位時間内のアクセス制限,またクレジットの表示など)を課す場合があるため、その利用には提供される利用規約の範囲内で使用することができます

一般的に公開されているウエブサービスはウエブAPIと呼ばれます。個人での利用であれば無償で提供されるものが多く、自社サービスの付加価値、または重要な機能の一つとしてウエブAPIを用いているサービスも多数公開されています。

ウエブAPIは一般的にのHTTPを応用した形で提供されることがおおく、その通信方式は REST, SORP, WSDL など提供者によって様々です。また、提供するデータの形式はXMLを用いることが一般的ですが、利用者が扱いやすい様々なデータ形式で提供される場合もあります. (データ形式参照)

マッシュアップ

さまざまなウエブAPIを組み合わせた、新しい形のウエブサービスはマッシュアップ型サービスと呼ばれます。A社が提供するウエブAPIとB社が提供するウエブAPIを組み合わせることで、A,B社では実現できなかった新しいサービスが容易に生まれる可能性がウエブAPIには秘めています。
また、企業が主催し、ウエブAPIを使ったサービスをコンテストとして評価するイベントも開催されています。このようなイベントから開発者とネットサービス企業がより近い関係になってきています

Mashup Award (Sun&リクルート)

Yahoo!JAPAN WebAPIコンテスト

また、ヤフーではヤフーが提供するAPIを利用したサービスをヤフーカテゴリ(登録サイト)で紹介もしています。
Yahoo!APIを利用したサービス一覧

主なウエブサービスとその内容

ヤフーウエブ検索をはじめ各種検索データ(画像動画知恵袋オークションなど)を提供しています。地図APIでは地図情報や各種地域情報(郵便番号,店舗等)なども検索結果として利用可能です。ニュースの見出しを分類情報とともに提供するニュースAPIもあります。ほかでは見られないサービスとしてテキスト解析APIがあり、各種日本語処理(形態素解析など)をAPIを使って提供するサービスもあります

ヤフー(japan)より多数のサービスからAPIが提供されています。ここでよく使われるのはオンライン画像サービスで有名なflickrの画像検索ができるAPIです。また, UI(User Interface)をフレームワーク化したライブラリ(JavaScript,CSS)のYUIからはウエブページにリッチインターフェースをもたらすたくさんの機能が提供されています。最近では、Yahoo!SearchBOSSという枠組みでYahoo!の検索サービス全般を企業,個人に提供するサービスやpipsというAPI自体をデベロッパーが生成できる面白いサービスも提供されています。

検索APIはもちろんのこと GoogleMapAPIはたくさんのウエブサイトで利用されています。動画サイトで有名なYoutubeの動画を検索するAPIも提供されています。APIではありませんが、携帯向けプラットフォームAndroid SDKや、インフラやサービスの実行環境まで含めて提供する Google App Engineなども提供し始めました
また、開発者がサービスの提供にあわせて、サービスの利用動向を確認できるサービス Google Analytics やマネタイズできる機会を与えるGoogle Adsense といった機能も幅広く利用されています

amazonの膨大な商品情報をAPIで提供するサービスです。商品情報やユーザレビューがAPIで取得可能です。また、Googleとおなじく、商品を開発サイトで紹介しamazon経由で購買に繋がった際の売り上げの一部が還元されるAmazonアフィリエイトサービスも有名です. また最近は amazon S3 と呼ばれる大規模なストレージサービスなどインフラ周りで開発者をサポートするサービスも提供が積極的です。

商品、グルメ、トラベルなどEC系の情報を提供しています。グルメやトラベルなどは別会社から提供される地図APIと組み合わせ、さらに付加価値をつけて独自のサービスを提供するサービスがたくさん開発されています

コンテストで紹介されたAPI一覧ページです。上で紹介した以外にも様々なAPIが提供されていることが分かります。

利用方法 (Yahoo!デベロッパーネットワークを例に)

ヤフーデベロッパーネットワークでウエブ検索APIを利用する手順を紹介します。
はじめに」というドキュメントを参照すると利用までの手順が紹介されています。各社APIの利用の場合に利用者を識別するIDを取得することがもとれられることが多いです。ヤフーでもアプリケーションIDと呼ばれるものを取得することを求めています。このIDをAPIを引き当てるURLに含めてアクセスすることになります。
ウエブ検索APIのリクエスト&レスポンス仕様を確認します。どのような通信方式でアクセスするか?リクエストパラメータの種類と用途。応答の形式. などを確認します。

あわせて利用制限も確認します。ヤフーのウエブ検索APIでは

応答のデータ形式

広く一般的に提供されているデータ形式であるが、受信側はその解析(Parse)処理を経て実際の使用となり若干の手間が発生する。XML Parserとよばれる解析ライブラリも各種開発言語によりさまざまなものがある

  • PHP Serialize

PHPでは配列(ハッシュ)データをファイル等に保存可能なバイト列に変換可能なserialize関数が標準で提供されている。この形式で情報を提供し、受信側がそのデータを unserializeすることでそのまま利用できることがメリットである。PHPでの利用となるが有効なデータ形式である

JSONJavaScriptにおけるオブジェクト表記法ではあるが、JavaScriptでの利用を限定するものではない。JavaScriptではeval関数を用いて即時オブジェクトに変換可能であるが、その他の言語でもその変化が可能なライブラリが提供されており、異なるプログラム言語間でデータを送受信できる。

JSONの形式に加え、JavaScriptのcallback関数もふまえて返却する応答形式です。Ajaxなどの非同期通信で用いられることが一般的でクロスドメインの制約(セキュリティ章参照)を回避できるので用途によっては有効です。(JSONP入門サンプル)