HerokuのつくってるAPI関係の便利なやつ

JSON Schema for the Heroku Platform APIでも紹介されているように、HerokuのAPIはJSON schemaで記述されたAPIの仕様を返すようなAPIがあって(ややこしい)、Auto-generating a Go API client for Herokuのようにこれを利用してAPIクライアントを自動生成するようなこともやってる(単なるアート作品じゃなくて実際に運用されているので偉い)。Herokuが出してるAPI関連作品の1つにcommittieというのがあって、JSON schemaを利用してAPIの仕様を定義して、それをRack middlewareで利用しようというもの。前に試しに似たようなのつくってたので良いのが出てきて良かった。

Committieは大きく分けて3種類の機能を提供していて、1つは本番環境で普通に使うやつで、リクエストをvalidationするもの。例えばRecipeをPOSTするときにnameは必須だとかをJSON schemaで宣言していれば、名前の無いリクエストが来たときにエラーを返すとか。もう1つは恐らくテスト環境用の機能で、APIの返すレスポンスの形式がJSON schemaで宣言しているものと違う場合に例外を発生させる。APIの仕様と実装が乖離しないようにするという目的などで使えると思う。最後は開発環境で便利なやつで、JSON schemaに記述しておいたサンプルからダミーレスポンスを生成して返すというもの。まだサーバサイドの開発が終わっていない段階でクライアントの開発を進めるのとか、クライアント側でめちゃ雑なCIを回すとかに使うと便利そう。

他にもJSON schemaを生成したりそこからドキュメントを自動生成するためのツールとか、API開発時の知見をまとめたやつとか、俺が考えた最強のAPIフレームワークとか色々公開してるのでその辺好きな人には面白そう。