15 min/d

ぼうずやのにっき

Clojure 向けのはてなグラフ API ラッパー『Hatena::Graph API for Clojure』を書いた

Clojure 向けのはてなグラフ API ラッパー『Hatena::Graph API for Clojure』を書いた。

はてなグラフとは、はてなのサービスのひとつで、グラフを作ってくれるサービスである。1日1個の数を入れるだけで、あとはよしなにグラフを作ってくれるという気のきいたサービスだ。ライブラリーひとつで対応しました感はあるが、はてなのインフラにのっかれるのでお手軽である。しかし、はてなでもおそらく人気のないサービスで、トップページからのリンクがないのはその証拠である。

さて、はてなグラフには 『はてなグラフ API 』がある。今回はそれを Clojure から呼び出すための薄いラッパーを書いた。

名前は『Hatena::Graph API for Clojure』とした。

使いかたは bouzuya/clj-hatena-graph を参照してほしい。簡単に書くと次のような感じ。

  1. project.clj:dependencies[org.clojars.bouzuya/hatena.graph "0.1.0"] を加える
  2. ソースファイルの先頭に (use 'hatena.graph) を加える
  3. (binding [*auto* {:username "x" :password "y"}] (post-data "graphname" "2012-01-01" "15")) で認証しつつ、データを送る

分かりづらい方へのサンプルとテストも兼ねて、アプリケーションを書いた。GitHub の情報をはてなグラフに送る仕組みだ。全体の流れとしては次の通り。

  1. GitHub Counter(bouzuya/clj-github-counter)』…… GitHub の Following / Followers / Public Repos / Public Gists をカウントして CSV に書く
  2. GitHub -> Hatena::Graph(bouzuya/clj-github-to-hatena-graph)』…… GitHub Counter の出力データをはてなグラフに送る

GitHub -> Hatena::Graph がちょうど良いサンプルになると思う。

せっかくなので Hatena::Graph API for Clojure 使ってみてほしい。