これまでのバージョンの差分はOpenAPI 3ドキュメントが使えるようになった点です。OpenAPI 3に対応したCommittee v3の機能を使うことで、integration test/request spec実行中にOpenAPI 3ドキュメント中のスキーマに基づいたJSONレスポンスのバリデーションを自動実行できるようになりました。
OpenAPI 3についてはRubyKaigi 2019での@ota42yさんの発表資料や、WEB+DB PRESS Vol.108の特集1が参考になります。
以上の対応に伴って、Committeeの機能を利用して自動でドキュメントフォーマットが判別できるようになったので、オプション driver
の指定は不要になりました。また、オプション schema_path
については必須とすることにしました。これは、schema_path
を指定しなかったときにデフォルトで入るパス(public/swagger.json
など)がとくに一般的なものではないことと、driver
をオプションとして渡さなくなったことによります。
他には、ignored_api_paths
は正規表現だけでなくふつうのStringも渡せるようにしました。渡された文字列と前方一致するパスを検索して、そのパスで表されるエンドポイントについてはテスト実行時にバリデーションをスキップします。
もし仮に使っている人がいれば、なにかおかしいところがあったら教えてください。