API blueprintでモックしたい時にお世話になるDrakovですが、オプションがカオスなので(バージョンアップでなおるかもですが)現状注意が必要なものだけメモっておきます。
--public オプション
docker上で起動したdrakovを、PCのターミナルからlocalhostでアクセスしたい時などに使います。
--public
だけだとpublicオプションが有効になりません。。
# NG
$ drakov --public -f api/*.apib
# OK
$ drakov --public true -f api/*.apib
--public true
とすることで、起動時にPUBLIC MODE running publicly
と出力され、有効になります。
-f オプション
読み込むapibを指定するオプションですが、複数ファイルを読み込む時注意が必要です。
下記で起動すると、# Data Structures
を別ファイルに宣言している場合、起動できません。
$ ls -1 api/*.apib
data.apib <- ここに共通のData Structuresを記載しているとする
group01.apib
group02.apib
. . .
# NG
$ drakov -f api/*.apib
# OK
$ drakov -f <(cat api/*.apib)
そういう場合は、bash力で切り抜けれます。
-D オプション
/drakov
にアクセスすると、利用可能なエンドポイントの一覧を表示してくれるオプションです。
# NG
$ drakov -D -f api/sample.apib
$ drakov -D true -f api/sample.apib
# OK
$ drakov -D 1 -f api/sample.apib
信じられないかと思いますが、これでやっと正常に動作します。
さらに複数ファイルを読み込んでいる場合は、-f で横着をすると一覧表示してくれません。
一旦一時ファイルに出力してから指定してあげてください。
# NG
$ drakov -D 1 -f <(cat api/*.apib)
# OK
$ cat api/*.apib > /tmp/all.apib
$ drakov -D 1 -f /tmp/all.apib