APIクライアントを自動生成するやつ

Heroicsという、JSON Schemaを元にAPIクライアントのコードを自動生成するやつを見た。 Heroicsにはbin/heroics-generateというコマンドラインツールが付いていて、JSON Schemaを解析したあと、 client.erbというERBのテンプレートに解析結果のオブジェクトを渡した結果、client.rbという雑なファイルを生成する。

$ gem install heroics
$ heroics-generate SuperAwesomeClient schema.json https://api.example.com > client.rb

Heroicsから生成されるもの

JSON Schemaからこんな感じで使えるやつを生成してくれる。

# client.rb
client = SuperAwesomeClient.connect(api_key)
client.recipe.create("title")
client.recipe.list #=> [...]
client.recipe.show(123)

JSON Schema

普通JSONで書くけど紙面の都合上ちょっと読みにくいのでYAML形式で記述しときます。