実現したかったこと
複数に分割された OpenAPI 定義 yaml ファイルから openapi-typescript を使って、TypeScript の型を自動生成すること。
課題
openapi-typescript は単一の OpenAPI 定義ファイルからのインポートに対応しています。
OpenAPI 定義ファイルを yaml で分割している場合はうまく型定義を作ることが出来ません。
解決方法
package.json に下記を追記します。
{
"scripts": {
"generate-api-schema": "npx swagger-cli bundle --dereference sample.openapi.yml | npx openapi-typescript --output src/generated_types/api_schema.ts"
}
}
解説
swagger-cli で yaml を一つの json に統合して出力します。
npx swagger-cli bundle --dereference sample.openapi.yml
それをパイプで渡して任意のファイル名で型定義ファイルを出力しています。
npx openapi-typescript --output src/generated_types/api_schema.ts