https://zenn.dev/dyoshikawa/articles/ed61d6bf0e8ef1
最近、案件でGraphQLを使ったスキーマ駆動開発を行ったところ体験が非常に良かったため、OpenAPIでもスキーマ駆動開発を試してみました。
普及度でいうとOpenAPI Generatorの方が高そうですが、今回はAspidaエコシステムに乗ってみます。
Aspidaファミリーのopenapi2aspidaでOpenAPI YAMLファイルからTypeScriptの型定義を生成し、フロントエンド・バックエンドでimportして利用するようにします。また、バックエンドフレームワークにExpressを使用しているという前提で、express-openapi-validatorを設定しOpenAPIスキーマを元によしなにバリデーションするようにします。
OpenAPI GeneratorがJava製なのに対し、AspidaはTypeScript製のため、フロントエンドとバックエンドをTypeScriptで開発している場合はnpm経由で比較的ハマらず導入しやすい点、また、個人的にAspidaの方が生成される型が好みだった点があります。
フロントエンドとバックエンドの言語がTypeScriptでない場合は、クロスプログラミング言語対応のOpenAPI Generatorを選定する、もしくはツールを併用するなど検討する必要がありそうです。