OpenAPI仕様書を基にPostmanからテストする(VeletaでGo)
はじめに
弊社では、2024年10月23日から始まる Japan DX Week の会場で、新製品の Veleta をローンチします。
お披露目の場なので、ミニセミナーと称して、デモをしまくります。
デモのネタをこちらのブログでも公開してまいります。
ということで、
先日の「OpenAPI仕様書からPrismのモックを作る」に続く「VeletaでGo」の第二弾です。
やってみた
準備
「Node.js が動くこと(npm もね)」
以上
デモ環境については、別途、ブログにまとめる(と今回も省略させていただきます)
OpenAPI 仕様書
前回のブログのように、Veleta が生成した OpenAPI 仕様書を使います。
(後ほど、ご紹介する今回作成したプログラムのリポジトリにも格納しました)
openapi-to-postman
ありました。
こちらについては、他にも記事が見つかると思いますが、簡単です。
$ npm install openapi-to-postmanv2
で、インストールして、
penapi2postmanv2 -s openapi.json -o collection.json -p -O folderStrategy=Tags,includeAuthInfoInExample=false
で、実行できます。この collection.json を Postman にインポートすれば、OK です。
めでたし、めでたし。おしまい。
としたいところなのですが、このままだと、customerId
の値が "<number>"
になってしまいます。ここは、文字列でなく、 number(より正確には integer)を期待されていますので、書き直さないとテストが実行できません。その下の "<string>"
も、こちらはこの文字列で OK なら良いですが、同様です。
もっと楽したい…
postman-collection
ありました。上で出力された Postman Collection 用の SDK です。
ただ、SDK なので、ご想像のとおり、プログラムを書かないといけません。
ドキュメントもあります…
うーん…
veleta-to-postman
作りました。
index.js だけなので、簡単に説明します。まず、上で紹介した2つのライブラリを読み込みます。
入出力のファイルは、ご自身のものに置き換えてください。
そして、リクエストの中の "<string>"
と "<number>"
をこの2つの関数で置換します。変数名を渡しますので、変数毎に値を変えることも可能です。
メインの変換処理を理解したい方は、postman-collection のドキュメントをお読みください。
関数が長すぎるとお嘆きの方、これ分割しないで、VSCode で編集するとアシストしてくれるので、甘えてしまいました。ガチでやるなら TypeScript なのでしょうが。
おわりに
ということで、リポジトリのスクリプトを実行すると、以下のようになります。
めでたし、めでたし。
こいつをさらに newman に食べさせると、自動テストができたりするみたいです。
Discussion