仕事でAPI仕様書を書く時にWiki以外の方法で管理したいと思ったので、API Blueprintというのを使ってみることにしました。
API仕様ページとMockAPIの作成
手順
最初に仕様ページ、次にMockの順で作成していきます
- API Blueprint用のDocker container立ち上げ
- npmでaglioのインストール
- api.apib、api.md、api-test.jsonの作成
- aglio起動
- ブラウザでページを見てみる
- npmでapi-mockインストール
- api-mock起動
- ブラウザでページを見てみる
5の時点で仕様ページが確認出来、8まで終わればMockAPIを確認することが出来ます
API Blueprint用のDocker container立ち上げ
docker run --rm -it -p 3000:3000 --name api-blueprint takashioshikawa/npm
npmでaglioのインストール
npm install -g aglio
api.apib、api.md、api-test.jsonの作成
現在のディレクトリは
/home
ここの.apibと
ここのJSON
をそれぞれ
api.apib
とapi-test.json
という名前で保存してください
api.mdは自作します
touch api.md
編集していきます
# GET /message
+ Response 200 (text/plain)
Hello World!
messageというリソースにGETメソッドでアクセスします
レスポンスはテキストでHello World!
APIの書き方はAPI Blueprint公式かこのGitHubを見てみてください
aglio起動
aglio -i api.apib -s -h 0.0.0.0
オプションの-h 0.0.0.0
はhost指定です
ポートは初期で3000番なので今回のコンテナの場合指定しなくても問題無いです
ポート指定オプションは-p 3000
aglio起動のオプション一覧(ソース)
https://github.com/danielgtaylor/aglio/blob/master/src/bin.coffee
ブラウザでページを見てみる
まずはdocker-machineのIPを調べる
docker-machine ip VM名
http://192.168.99.100:3000
ちゃんと表示されていますね
次は実際にMockAPIとして機能させてみます
Mockサーバーの作成
npmでapi-mockインストール
npm install -g api-mock
api-mock起動
pwd> /home
api-mock ./api.md --port 3000
ブラウザでページを見てみる
まずはdocker-machineのIPを調べる
docker-machine ip VM名
http://192.168.99.100:3000/message
にブラウザからアクセス
"Hello World!"と出力されていればOKです
所感
簡単ではありましたがこれでMockにもなるAPI仕様ページを作成出来るようになりました
記述方法はもっと調べていきたいと思います
今回は以上ですー