Web サービスの利用

Web サービス (Web Service) とは

利用登録

Webサービスの利用においては、ユーザ登録やアプリケーションの登録を求められることが多い。 アプリケーションの URL を尋ねられる場合には、 開発するアプリケーションの公式Webページを用意することが望ましい。 自分の個人的なサイトがない場合には、 earth に置くことのできる自分のページの一部として用意することもできる。

登録により発行される ID とは別に、アクセストークンを取得する必要があるタイプもある。 提供側が用意しているドキュメントやサンプルプログラムを参考にすること。

プログラミング

Webサービスは提供者側が独自に仕様や利用規約を決めている。 RSS のように標準化されていないため、 提供者側によるドキュメントに沿ったプログラムを作成する。

仕様と実装方法の確認

実装

レスポンスの形式が XML の場合

REST でレスポンスの形式が XML の場合、 リクエスト(問い合わせ)の方法が HTTP の GET であり、 レスポンス(応答)の形式が XML である点で RSS と似ている。 ただし、応答の XML のスキーマは Webサービスの提供者独自のものであるため、 必要な情報を取り出すためのプログラムは Webサービスごとに作成する必要がある。

サーバのレスポンスの形式が XML の場合には、 サンプルプログラムの Feed.java, Item.java など、 サーバの応答を DOM で解析するプログラムをベースにするとよい。

REST では HTTP の GET を使うため、 パラメータを URL に含めることができる (baseurl?key1=value1&key2=value2...)。 このとき、全角文字などURLに使ってはいけない文字を使う場合には、 URL エンコード をすること。

レスポンスの形式が JSON の場合

Java で JSON (JavaScript Object Notation) を扱うライブラリが公開されているので、それを用いるとよい。

動作確認用のツール/サイト

Web サービスの例

データを持っている企業が、検索のWebサービスを提供していることが多い。 機械学習の広まりにより、データを送ると処理結果を返してくれる API が増えている。

リンク集・ポータルサイト

無料で使えるとは限らないので、利用条件を確認すること。

機械学習・AI

リクルートテクノロジーズ

検索 (総合)

Google

Yahoo! JAPAN

Microsoft

ソーシャルメディア

X (twitter)

有料化され、授業での利用は現実的ではない。

Instagram

アカウントをプロアカウントにする必要がある。

LINE

情報を集めるのには向かないが、BOTをつくることもできる。

はてな

pixiv

pixiv は公開されている API がない。 非公開のものを利用する方法が公開されている (未確認)。

Spotify

検索、アルバムを指定してトラックを取得、プレイリストを指定してトラックを取得、などの API がある。 アプリケーションの登録は必要だが、ユーザ固有の情報を使用しない場合はユーザ認証を必要としない。 レスポンスはJSONだが、Javaのラッパーがある。

SoundCloud

プレイヤー向けの API が多いが、コメントを取得したりもできる。

last.fm

last.fm は誰が何を再生しているか公開されており、活用の幅が広い。

商品一般の検索

Amazon

Amazon が全世界で扱っている商品の情報などが得られる。 開発者としてのアカウント登録が必要。

楽天

楽天市場、楽天ブックス、楽天オークション、楽天トラベルなどの API がある。 利用するには楽天の会員になり、デベロッパーID を取得する(無料)。 デベロッパーID を URL に埋め込むだけでよいので Amazon よりも簡単。

価格.com

新規受付は終了しているので、過去に登録している人しか利用できない。

飲食店検索

エリアを指定して飲食店を検索することが可能。 エリア以外の検索条件を指定できるかはサイトごとに異なる。

例えば安い店を探したい場合、 ほとんどのサイトでは予算で検索することができないので、 エリアのみで検索した結果を予算でソートするといった処理が必要となる。

ホットペッパー

料理や予算など、かなり細かい条件での検索が可能。

地域の指定は、ホットペッパーのエリアが最小単位なので駅名での指定はできないが、 住所の部分一致で絞り込むことは可能。

ぐるなび

レストラン検索のみ。地域を指定できるが都道府県が最小単位。 業態(懐石、定食など)の指定も可能。料理名での指定はできない。 フリーワード検索が可能。

各レストランの平均予算は検索結果には含まれるが、 予算を指定してレストランを検索することはできない。

2021年6月30日をもって無料APIサービスの提供は終了した。

食べログ

最寄り駅、緯度・経度からレストランを検索することが可能。 価格は検索結果には含まれるが、価格で検索することはできない。

新規登録の受付を停止しているため、利用できない。

旅行・宿検索

楽天トラベル

じゃらん

じゃらんWebサービスは 2020年2月25日にアカウント登録の新規受付を終了。

その他

Geocoding.jp

住所やランドマーク名を与えると経度・緯度が得られる。 内部で Google と Yahoo! の API が使われているが、こちらは登録の必要がない。

Annict

アニメの視聴記録ができるサイト。有志が入力したメタデータが充実。

Connpass

イベント情報サイト。IT分野の勉強会が対象。

Cookpad

Cookpad の API は外部に公開されていない。以前は非公式なものが動作していたが、いまは結果を返さない。

クライアントの位置情報

HTML5 では、Webサービスを明示的に用いなくても、 クライアントの位置情報を JavaScript で取得することができる (ユーザが許可した場合に限る)。 この位置情報をサーバ側で使いたい場合には、クライアントから JavaScript を使ってサーバに送る必要がある。

参考サイト