7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

DockerとAPI BlueprintでAPI仕様書とモックを同時に作成する

Posted at

仕事でAPI仕様書を書く時にWiki以外の方法で管理したいと思ったので、API Blueprintというのを使ってみることにしました。

API仕様ページとMockAPIの作成

手順

最初に仕様ページ、次にMockの順で作成していきます

  1. API Blueprint用のDocker container立ち上げ
  2. npmでaglioのインストール
  3. api.apib、api.md、api-test.jsonの作成
  4. aglio起動
  5. ブラウザでページを見てみる
  6. npmでapi-mockインストール
  7. api-mock起動
  8. ブラウザでページを見てみる

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.apibapi-test.jsonという名前で保存してください

api.mdは自作します

touch api.md

編集していきます

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

スクリーンショット 2016-06-28 22.18.16.png

ちゃんと表示されていますね

次は実際に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仕様ページを作成出来るようになりました

記述方法はもっと調べていきたいと思います

今回は以上ですー

7
6
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
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?