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形式で記述しときます。