ローカルスタブを作成する手順
node.jsをインストールする
Windowsなのでこれを参考にしたが…、
https://qiita.com/taiponrock/items/9001ae194571feb63a5e
Linuxならyumでよいと思う。
$ sudo yum install epel-release
$ sudo yum install nodejs
$ node -v
v0.10.32
Gitをインストールする。
省略
Swagger Editorをインストールする。
NDAなどに引っかかる場合は、https://editor.swagger.io/ は利用できないため。
Windowsだとgit bashを開き以下コマンド。(よく考えたら、linuxでも一緒だな。)
$ git clone https://github.com/swagger-api/swagger-editor.git
$ cd swagger-editor/
$ npm install
$ npm start
補足
npm install時にnode-gyp周りでエラーになる場合は、以下を参照すること。
https://qiita.com/AkihiroTakamura/items/25ba516f8ec624e66ee7
これに加え、私の場合はpython3.6が別件で既にinstallされていたので、3.6は一旦uninstallする必要があった…。
インストールログ
PC MINGW64 ~
$ git clone https://github.com/swagger-api/swagger-editor.git
Cloning into 'swagger-editor'...
remote: Counting objects: 32385, done.
remote: Total 32385 (delta 0), reused 0 (delta 0), pack-reused 32385
Receiving objects: 100% (32385/32385), 130.69 MiB | 3.21 MiB/s, done.
Resolving deltas: 100% (18224/18224), done.
PC MINGW64 ~
$ cd swagger-editor/
PC MINGW64 ~/swagger-editor (master)
$ npm install
npm WARN deprecated react-file-download@0.3.5: WARNING: This project has been renamed to js-file-download. Use js-file-download instead.
(省略)
PC MINGW64 ~/swagger-editor (master)
$ npm start
> swagger-editor@3.1.12 prestart C:\Users\hoge\swagger-editor
> npm install
swagger-editor@3.1.12 C:\Users\hoge\swagger-editor
+-- UNMET PEER DEPENDENCY react@15.6.2
`-- swagger-ui@3.4.0
+-- brace@0.7.0
+-- reselect@2.5.3
+-- UNMET PEER DEPENDENCY webpack@^2.2.0
`-- yaml-js@0.2.0
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm WARN commonmark-react-renderer@4.3.3 requires a peer of commonmark@^0.27.0 || ^0.26.0 || ^0.24.0 but none was installed.
npm WARN eslint-config-standard@6.2.1 requires a peer of eslint@>=3.8.1 but none was installed.
npm WARN eslint-config-standard-jsx@3.2.0 requires a peer of eslint@>=3.0.0 but none was installed.
npm WARN eslint-plugin-standard@2.0.1 requires a peer of eslint@>=3.0.0 but none was installed.
npm WARN react-addons-shallow-compare@0.14.8 requires a peer of react@^0.14.8 but none was installed.
npm WARN react-object-inspector@0.2.1 requires a peer of react@^0.14.0 but none was installed.
npm WARN webpack-dev-server@2.5.0 requires a peer of webpack@^2.2.0 but none was installed.
> swagger-editor@3.1.12 start C:\Users\hoge\swagger-editor
> npm-run-all --parallel serve-static open-static
> swagger-editor@3.1.12 serve-static C:\Users\hoge\swagger-editor
> http-server -i -a 0.0.0.0 -p 3001
> swagger-editor@3.1.12 open-static C:\Users\hoge\swagger-editor
> node -e 'require("open")("http://localhost:3001")'
Starting up http-server, serving ./
Available on:
http://192.168.60.60:3001
http://127.0.0.1:3001
Hit CTRL-C to stop the server
swaggerエディタでyamlから出力を行う。
まずはAPIのyamlを入手
swagger editorを起動
上記例でいうと、htp://127.0.0.1:3001にアクセス。
editor上からServerStubを作成
作成したServerStubからnode.jsを起動
zipファイルを解凍し、配置。
git bash(でもコマンドプロンプトでもなんでもいいが) を起動して、当該ディレクトリに移動して
$npm startを実行
MINGW64 ~/stub/nodejs-server-server
$ npm start
> swagger-petstore@1.0.0 prestart C:\Users\hoge\stub\nodejs-server-server
> npm install
npm notice created a lockfile as package-lock.json. You should commit this file.
added 147 packages from 80 contributors and audited 400 packages in 24.937s
found 4 vulnerabilities (2 low, 1 moderate, 1 high)
run `npm audit fix` to fix them, or `npm audit` for details
> swagger-petstore@1.0.0 start C:\Users\hoge\stub\nodejs-server-server
> node index.js
Your server is listening on port 8080 (http://localhost:8080)
Swagger-ui is available on http://localhost:8080/docs
MINGW64 ~/stub/nodejs-server-server
SwaggerUIを立ち上げる。
localhost:8080/docsにアクセス。APIドキュメントやお試しリクエストなどはこれでわかる。
これでローカル側でスタブが立ち上がったので、スタブURLをこのURL(localhost:8080)に設定。