gigahorse-github 0.1.0
gigahorse-github 0.1.0 をリリースした。これは、Github API v3 のための Gigahorse プラグインだ。
レポジトリ情報を取得する使用例はこんな感じだ:
scala> import gigahorse._, gigahorse.github.Github, scala.concurrent._, duration._
scala> val client = Github.localConfigClient
client: gigahorse.github.LocalConfigClient = LocalConfigClient(OAuthClient(****, List(StringMediaType(application/json), GithubMediaType(Some(v3),None,Some(json)))))
scala> Gigahorse.withHttp { http =>
val f = http.run(client(Github.repo("eed3si9n", "gigahorse-github")), Github.asRepo)
Await.result(f, 2.minutes)
}
res0: gigahorse.github.response.Repo = Repo(https://api.github.com/repos/eed3si9n/gigahorse-github, gigahorse-github, 64614221, User(https://api.github.com/users/eed3si9n, eed3si9n, 184683, Some(https://github.com/eed3si9n), Some(https://avatars.githubusercontent.com/u/184683?v=3), Some(), Some(User), Some(true), None, None), eed3si9n/gigahorse-github, Some(Gigahorse plugin for Github API v3),...
gigahorse-github 本体に興味がある人は、README にドキュメンテーションがあるのでそちらを参照してほしい。
Gigahorse を拡張する
Gigahorse プラグインの書き方を解説したGigahorse を拡張するというページも書いた。 Dispatch プラグインの書き方とだいたい同じになっている。そこで書いたように、JSON データバインディングをスキーマから自動生成するという方法をとっている。
そのため、僕にとって gigahorse-github は Gigahorse の概念実証であると同じかそれ以上に sbt-datatype の概念実証であるという意味合いがある。やはりというか、全コンポーネントで細かいバグが出てきたので有益な演習だったといえる。