LoginSignup
7
7

More than 5 years have passed since last update.

Macでswaggerをdockerから起動し、apiモックサーバーの動作確認するまで

Posted at

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
vi.
if [ -f ~/.bashrc ] ; then
. ~/.bashrc
fi
ターミナル.
echo 'export PATH=$PATH:$HOME/.nodebrew/current/bin' >> ~/.bash_profile

zsh利用の場合↓

ターミナル.
vi ~/.zshrc
vi.
path=(
  $PATH:$HOME/.nodebrew/current/bin(N-/)
  $path
)

を追加

nodejs-server 起動

「nodejs-server ダウンロード」でダウンロードした
nodejs-server-server-generated.zip を任意の場所に展開。
「展開フォルダ/api/swagger.yaml」の host, schemes をローカル実行用に下記を参考に修正。

swagger.yaml
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

以上!

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7