af 021a

こんにちは。ライブドアのモリウチです。突然ですがWebディレクターのみなさん、「WebAPI」を使った企画や設計をしていますか?

APIとは「Application Programming Interface」の略で、特にWebAPIとはあるプログラムが、別のシステム (Webサービス) が持っているデータのCRUD (読み書き削除) や、一連の処理 (機能) の利用を可能にするための技術です。

WebAPIの活用の普及に貢献したのは2005年のGoogleMapのAPIでしょう。
Google Maps API

WebAPIは、登場当初は地図情報や、都道府県やジャンルなどの静的な情報を取り出して利用することが主流でしたが、最近ではTwitterやFacebookのように利用ユーザーからの許可を受けてユーザーの個人データやソーシャルグラフを取り出して利用したり更新したりできるようなWebAPIが一般化してきました。そして私たちが開発するWebサービスも大きな可能性を持つことができるようになりました。

API思考法のメリット


さて、そんな便利なWebAPIですが、所詮システムのことだからディレクターが考えることではない、要望に対してエンジニアが提案してうまく利用してくれればいい、そう考えている方も多いかもしれなせん。しかし、ディレクターがAPIについて理解しておくと良いこと (知らないと損をすること) があります。
  1. 課題や目的の解決のスピードが格段に早くなる可能性がある
  2. 企画や発想の幅が広がる
  3. 柔軟な思考・設計法が身につきお仕事が楽しくなる
#1・#2については具体的に実効があります。特にシステム開発を社外のパートナーにアウトソーシングしている現場において、企画やブレストの段階でエンジニアがアドバイスしてくれる機会も少ないですから、プランナーやディレクター、ビジネスプロデューサーがWebAPIの利用について知っていなければ、コスト面・スピード面で競合に出遅れていることになります。

また、サービスローンチ時においても、他のメジャーなWebサービスとの連携を謳うことで、驚くほどのスピードダッシュでサービス利用者を増やすことも可能になりました。

そして、#3については私たちWebディレクターのお仕事が、日々新しいことを取り入れて成長する、刺激あふれる仕事であり続けるためにも大事なことです。

新しいプロジェクトをはじめるときに「また画面遷移図とワイヤーフレーム書かなきゃなー、飽きたなー」なんて思ったことありませんか? WebAPIに限らずWebの世界では、日々新しい技術や表現手法が生み出されています。これらを積極的に研究してお仕事にも取り入れていく習慣やサイクルがあれば「同じような」「得ることがひとつもない」自分にとって楽しめないプロジェクトは撲滅できるのではないでしょうか。

閑話休題。そんな便利で刺激にあふれた昨今のWebAPI。エンジニアではない私たちディレクターが程良く理解するためには何をすればいいのでしょうか?ここでは、2つの「勘どころ」をご紹介します。

APIドキュメント


APIドキュメントとは文字通り、APIを使うために必要な手続きのマニュアルです。APIとは手続きの仕様ですので、どのサービスのAPIでもほぼ同じようなフォーマットで記されています。

4sq1

たとえば、
  • 「所定のURL (A)」に「国名コード (B)」をつけて投げると「観光地情報のリスト (C)」が返ってくる
    →エイビーロードAPI
  • 「所定のURL (A)」に投げると「フォロワーのIDのリスト」が返ってくる
    →TwitterAPI
  • 「所定のURL (A)」に「スポットのID (B)」をつけて投げると「その場所にいるチェックイン数とリスト (C)」が返ってくる
    →foursquareAPI
  • 「所定のURL(A)」に「対象とする写真のID(B)」と「コメントテキストデータ(B)」をつけて投げると「処理結果(C)が返ってくる
    →InstagramAPI
この中でAのことを、メソッド・エンドポイント、Bのことをリクエスト、Cのことをレスポンスと呼び、ほとんどのWebAPIはこのフォーマットに則って解説されていますので、英語が苦手でも、それぞれのオブジェクトやパラメータ名さえ認識出来れば理解することは可能です。

また、海外サービスのWebAPIについては有志の方による和訳も見つけることができますので有効に活用しましょう。

APIエクスプローラー


APIエクスプローラーとは、前述の各種メソッドに、任意のリクエストのパラメータを付与して、ブラウザ上で手軽に実行して、レスポンスの値を確かめることができるフォームです。

ドキュメントを眺めてなんとなく出来ることを把握した後に、具体的に自分のユーザーIDや近所のスポット、自分や友達がアップロードしたデータ (写真やコメント) をリクエストにして、メソッドを実行することで「具体的なデータ」でレスポンスを確認することができます。

flickr

プログラムを書くことができるエンジニアであっても、実際にAPIを実行出来る環境を構築することはそれなりの時間が取られる作業ですが、このAPIエクスプローラーがあれば、リクエスト結果のデータを目で見て確認することはもちろん、そのデータだけ拝借して、モックアップやプロトタイプに具体的な「連携イメージ」として表示させることも簡単です。

これら最新のWebAPIを触っていると、「最近の (イケてる) Webサービスってなんてオープンなんだ!」「WebAPIがあれば、外からでも何でもできちゃうんだなあ」という感想を持つことでしょう。昨今のWebサービスではAPIは外部のデベロッパーが使うためのものだけではなく、同じサービス内のシステムでも積極的に利用されています。つまり高度にAPI化されているプラットフォームでは、APIだけを組み合わせて同じようなサービスを作ってしまうことも可能なのです。

これは、情報 (データ) をいちWebサービスが「独占的に囲い込む」ことによるメリットよりも、利用ユーザー数とユーザーの動きを活性化させる「オープンなプラットフォーム」化する方がより価値が高く何よりもクールだという、本来のインターネットのあるべき姿へ回帰する姿を反映しているとも言えるのではないでしょうか。

WebAPIとAPIエクスプローラーいろいろ


▼Twitter


https://dev.twitter.com/docs/api
http://twitapi.com/explore/

▼Facebook Graph API


http://developers.facebook.com/docs/reference/api/
https://developers.facebook.com/tools/explorer

※FacebookのAPIドキュメントは日々更新されており他のAPIに比べて整理されておらず読解が難しいですが、有志による日本語訳サイトと合わせて確認するとよいでしょう。
Graph API : Facebook開発者向けドキュメントの日本語訳とTips


▼Foursquare


https://developer.foursquare.com/
https://developer.foursquare.com/docs/explore.html

▼Flickr


http://www.flickr.com/services/api/
http://www.flickr.com/services/api/explore/?method=flickr.photos.search

▼Google Maps API ファミリー - Google Code


http://code.google.com/intl/ja/apis/maps/
https://code.google.com/apis/explorer/

▼Instagram


http://instagram.com/developer/

▼Last.fm


http://www.lastfm.jp/api

それでもやっぱり英語は苦手だなーという方、国内のWebサービスも便利なAPIを提供していますので一部ご紹介します。私たちに身近なサービスばかりですのでAPIを読み解く練習としては丁度良いですね。

▼リクルートWEBサービス


http://webservice.recruit.co.jp/

▼mixi Graph API << mixi Developer Center (ミクシィ デベロッパーセンター)


http://developer.mixi.co.jp/connect/mixi_graph_api/

▼ Hatena Developer Center


http://developer.hatena.ne.jp/

ロケタッチAPI


Developers API

ライブドアでは位置情報サービス・ロケタッチ(http://tou.ch/) のユーザーデータ、スポットデータ、チェックイン(タッチ)データ等にアクセス出来るAPIを先日リリースしました。

▼ロケタッチAPI


http://tou.ch/developer/
https://tou.ch/developer/explorer

ロケタッチWebAPIとしての特徴としては
  • クライアント認証には扱いやすいOAuth2を利用
  • APIExplolerを公開
  • 完全日本語ドキュメント (当たり前ですね!)
このように、企画者・開発者の方に具体的に理解・開発がしやすい環境が整っています。既に100名近くのデベロッパーの方を登録していただき、ロケタッチのデータや機能を生かしたサービス・アプリ・ツール作りが行われています。

また、今後は内外のデベロッパーが開発したロケタッチ連携サービス・アプリ・ツールについてもサイト内で紹介ができるように準備を進めていますので、ディレクターのみなさんも腕をふるってチャレンジしてみてください。


ライブドアでは、新しい技術を貪欲に取り入れることができるディレクターを募集しています。


おまけ


私も個人で運営しているラーメンブログをロケタッチ対応しました!読者が「ロケタッチコネクト」を行うと、行ったことのあるお店とそうでないお店が一目瞭然の「タッチスタンプ」を確認することができます。

ramen1

ramen2