API仕様を定義するフォーマットとしてデファクトスタンダートとなりつつあるSwaggerを利用してAPIモックを作ろうとしたときにはまったところがありましたので、メモしておきます。
手順(Node.js)
(1) SwaggerCodegenをダウンロードする。
# Mavenリポジトリからjarファイルをダウンロードする。 wget http://central.maven.org/maven2/io/swagger/swagger-codegen-cli/2.2.3/swagger-codegen-cli-2.2.3.jar -O swagger-codegen-cli.jar # helpを表示してみる。 java -jar swagger-codegen-cli.jar help
(2) Swaggerファイルからモック用のコードを生成する。
# -i Swaggerファイル # -o 出力先ディレクトリ java -jar swagger-codegen-cli-2.2.3.jar generate -i activation3.yaml -l nodejs-server -o nodejs node nodejs\index.js
はまったところ
APIを呼び出したときに下記のエラーが出力される
Error: Cannot resolve the configured swagger-router handler: xxx at swaggerRouter ...
- 私の場合の原因はコード生成時に変数名として利用される以下の項目にマルチバイト文字が使われていたためでした。
- operationId
- tags