OpenAPI 3ドキュメントも使えるSchemaConformist 0.3.0をリリースした
これまでのバージョンの差分はOpenAPI 3ドキュメントが使えるようになった点です。OpenAPI 3に対応したCommittee v3の機能を使うことで、integration test/request spec実行中にOpenAPI 3ドキュメント中のスキーマに基づいたJSONレスポンスのバリデーションを自動実行できるようになりました。
OpenAPI 3についてはRubyKaigi 2019での@ota42yさんの発表資料や、WEB+DB PRESS Vol.108の特集1が参考になります。
RubyKaigi 2019 presentation
https://rubykaigi.org/2019/presentations/ota42y.html
特集1
[効率急上昇!]スキーマ駆動Web API開発
OpenAPI/GraphQLで仕様からコードもテストも作成
スキーマを基点にしたWeb API開発の方法を解説する特集です。WebAPIのスキーマは、エンドポイントへのリクエスト方法やそのレスポンスの構造を記述したものです。これを最初に記述することで、ドキュメント/テスト/実装などの作成を効率化できます。第1~2章でスキーマの必要性とREST Web APIのスキーマを記述するOpenAPIの基本を解説し、第3章ではOpenAPIによるスキーマ駆動開発の様子をお見せします。第4章ではGraphQLによるスキーマ駆動開発について説明し、RESTとGraphQLでアーキテクチャスタイルが異なってもスキーマ駆動開発の本質は変わらないことを示します。
特集2
詳解PostgreSQL
[10/11対応]現場で役立つ新機能と実践知識
PostgreSQLについて本誌で特集するのは実に7年ぶりです。本特集では、2018年10月にリリースされたばかりのバージョン11と、現場の主力として使えるバージョン10にフォーカスし、この7 年間で大きく進化したPostgreSQLの魅力を余すことなくお伝えします。本特集を読めば、きっと最新版のPostgreSQLを使いたくなることでしょう。
特集3
ZOZO開発ノウハウ大公開
既存資産を活かしたシステムリプレース
株式会社ZOZO が運営するZOZOTOWNと言えば、誰もが知る日本最大級のファッションECサイト。そのZOZOTOWNがシステムリプレースを行いました。さらにZOZOは、プライベートブランド商品を販売するグローバルECサイトを立ち上げました。今回はこの2つを特集します。ZOZOTOWNのシステムリプレースは、時に制約ともなる既存資産を活かしながら、変化に強く堅牢なシステムを作り上げることが課題でした。一方、グローバルECサイトはゼロからのスタートです。ZOZOTOWNとは異なるアプローチですが、どちらも未来への基盤作りという点では共通しています。
18周年記念エッセイ
壁の先に見えたもの
限界! もうダメ! もはやこれまで!?
日々のお仕事の中で「もう限界かな」「なんで理解されないんだろう」「私、やっぱりダメかも」なんて思ったこと、きっとあるはずです。でも、自分だけがそう思っているというのは大きな勘違い。あの人もこの人もそんな経験をしているのです。かつて乗り越えた限界から、まさにいま乗り越えつつある壁まで。どう乗り越えたのか、または乗り越えようとしているのか。そして、そこで見えたのはどんな景色だったのか。第一線で活躍する方々にお書きいただきました。
以上の対応に伴って、Committeeの機能を利用して自動でドキュメントフォーマットが判別できるようになったので、オプション driver
の指定は不要になりました。また、オプション schema_path
については必須とすることにしました。これは、schema_path
を指定しなかったときにデフォルトで入るパス(public/swagger.json
など)がとくに一般的なものではないことと、driver
をオプションとして渡さなくなったことによります。
他には、ignored_api_paths
は正規表現だけでなくふつうのStringも渡せるようにしました。渡された文字列と前方一致するパスを検索して、そのパスで表されるエンドポイントについてはテスト実行時にバリデーションをスキップします。
もし仮に使っている人がいれば、なにかおかしいところがあったら教えてください。