generate typespec from swagger v2
0. setup
$ npm init -y
$ tree . -L 2 -I node_modules
.
├── README.md
├── assets
│ └── swagger.json // pet store
├── compose.yaml
├── dockerfile
└── package.json
dockerfile, compose.yamlはqiitaと同じ内容です。
assets/swagger.jsonはassets/swagger.jsonのsampleから取得しています。
1. 依存関係を作成する
Autorest autorestcliを用いて、swagger v2からtypespecの環境を作成していきます。
% npm install -D autorest
package.json
"scripts": {
"cli:autorest": "autorest"
},
//
"devDependencies": {
"autorest": "^3.7.1"
},
2. typespecの生成
Autorest CLI autorestを利用して、
@autorest/openapi-to-typespecを参考にtspファイルを生成する。
% npm run cli:autorest -- --openapi-to-typespec --input-file=./assets/swagger.json --use=@autorest/openapi-to-typespec@next --output-folder=./gen
% tree . -L 2 -I node_modules
.
├── README.md
├── assets
│ └── swagger.json
├── compose.yaml
├── dockerfile
├── gen
│ ├── main.tsp
│ ├── models.tsp
│ ├── routes.tsp
│ └── tspconfig.yaml
├── package-lock.json
└── package.json
--output-folderで指定した、gen以下にtypespecのコードが生成される。