Macでswaggerをdockerから起動し、apiモックサーバーの動作確認するまで
- docker インストール
- swagger-ui イメージの起動
- nodejs-server ダウンロード
- node インストール
- nodejs-server 起動
docker インストール
ここからstable版をダウンロードしてインストールする。
https://docs.docker.com/docker-for-mac/install/
swagger-ui イメージの起動
docker pull swaggerapi/swagger-ui
docker run -d -p 8888:8080 swaggerapi/swagger-editor
pullで落として起動。
ちなみに、最後にnode server起動時にポートを8080にするため、8888で立ち上げました。
nodejs-server ダウンロード
http://localhost:8888
にアクセス一番上のメニューから
generate server > nodejs-server
の順にクリック。nodejs-server-server-generated.zipをダウンロードします。
ちなみに、公式のオンラインエディタだとダウンロードできなかった。何でだろう?
ここまででdockerで起動したswaggerは用済みなので閉じちゃっても良いです。
docker ps
docker stop psで表示されたid
node インストール
nodebrew インストール
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install nodebrew
nodebrew setup
node インストール
nodebrew install-binary latest
nodebrew list
インストール済みで利用できるバージョン一覧が表示されるので好きなのを選んで
nodebrew use vXXX.XX.XX
続いてpathなどの設定
bash利用の場合↓
vi ~/.bash_profile
if [ -f ~/.bashrc ] ; then
. ~/.bashrc
fi
echo 'export PATH=$PATH:$HOME/.nodebrew/current/bin' >> ~/.bash_profile
zsh利用の場合↓
vi ~/.zshrc
path=(
$PATH:$HOME/.nodebrew/current/bin(N-/)
$path
)
を追加
nodejs-server 起動
「nodejs-server ダウンロード」でダウンロードした
nodejs-server-server-generated.zip を任意の場所に展開。
「展開フォルダ/api/swagger.yaml」の host, schemes をローカル実行用に下記を参考に修正。
host: "localhost:8080"
schemes:
- "http"
ターミナルで nodejs-server-server フォルダに移動し、
npm install
してから起動。
node index.js
これで起動まで完了したので、
http://localhost:8080/docs/
でアクセスすると、swagger-uiで作っていたapiモックサーバーがローカルで起動する。
畳まれてるapi設計書を開いて、レスポンスを設定してから「Try it out!」すると表示されたアクセス方法でアクセスできるので確かめればOK。
ちな、確かめるときは表示されてる
curl -X ...
ではなく、
curl -verbose -X ...
のがおすすめかな。
最後にサーバーを終わらせるには
ps -e | grep node | awk '{print $1}'
kill -9 表示されたid
以上!