committee 3.0.0.alphaとOpenAPI3対応状況

committee 3.0.0.alphaとOpenAPI3対応状況

committee3.0.0.alphaがリリースされました。 OpenAPI3対応とそれに伴う大規模なリファクタリングが入っています。 手元のプロジェクトではとりあえずテストが全て通りstaging環境でも動作していますが、使っていない部分や定義ファイルによってはバグる可能性があるので、ご確認をお願いします。 JSON Hyper-Schemaからの変換であれば、変換用スクリプトを書いたので、ある程度は自動で変換ができます。

初期化方法の変更

前回の方針の通り、Committee::Driversのクラスを使う初期化方法のみをサポートします。

具体的には以下のようにJSONをパースしてHyperSchemaオブジェクトを作成して渡します。

json = JSON.parse(File.read(...))
schema = Committee::Drivers::HyperSchema.new.parse(json)
use Committee::Middleware::RequestValidation, schema: schema

OpenAPI3だと以下のようになります。

open_api_yml = OpenAPIParser.parse(YAML.load_file('open_api_3/schema.yml'))
open_api_3 = Committee::Drivers::OpenAPI3.new.parse(open_api_yml)
use Committee::Middleware::RequestValidation, open_api_3: open_api_3

オプション類の変更・未実装 

check_content_type, optimistic_json, prefixに関してはオプションがまだ未実装です。
そのため、これらの機能を使っている場合はまだ正常に動きません。

各種デフォルトの値が変更になってます。詳しくはこの辺を見てください。 だいたいcoerce系のオプションがデフォルトでtrueになりました。
また、coerce_recursiveに関しては今の所常にtrueになります(他のcoerce系オプションががtrueじゃないと関係はないです)。
https://github.com/interagent/committee/tree/3-0#committeemiddlewarerequestvalidation

今後の予定

前述の通り、stagingでは動いているのでオプションの未実装な部分を実装してbeta版を出し、問題がなければそのまま正式版をリリースする予定です。 おそらく早くて1月中、遅くとも2月には出来上がるはずです。