unhurried

コンピュータ関連ネタがほとんど、ときどき趣味も…

SwaggerCodegenでAPIモックを作る

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

参考