6
4

More than 5 years have passed since last update.

API Blueprintとapi-mockでモックサーバを作成する

Last updated at Posted at 2016-04-23

前回:API BlueprintでWeb APIのドキュメントを生成する - Qiita

概要

ここでは、api-mockを使って記述したドキュメント通りに動くWeb APIを立ててみます。

api-mockで立ち上がるモックサーバは、実際にはデータの追加や削除等のデータに応じたレスポンスを作ることはできません。APIを1から実装する段階ではあまり恩恵がありませんが、既に他のアプリケーションとの連携ができる場合などには、疎通確認したいといったケースには便利なツールです。

また、きちんとドキュメント通りに想定するレスポンスが返ってくるので、MacOSならパイプを挟んでpbcopyすることにより、手軽にコピペできる等の使い方も考えられます。

api-mockでWeb APIドキュメントからモックサーバを立ち上げる

api-mockコマンドで先ほど作成したrecipe.apibを指定するだけでサーバが立ち上がります。

$ api-mock recipe.apib
info:    Enabled Cross-Origin-Resource-Sharing (CORS)
info:       Allow-Origin: *
info:       Allow-Methods: GET, PUT, POST, PATCH, DELETE, TRACE, OPTIONS
info:       Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, Referer, Prefer
info:    Listening on port 3000

起動したところで、curlで実際に記述したとおりのレスポンスが返ってくるかを確かめてみましょう。

$ curl http://localhost:3000/recipes/
{
  "success": false,
  "path": [],
  "error": "show not implemented yet"
}%
$ curl http://localhost:3000/recipes/hoge
{
  "error": "show not implemented yet",
  "path": "/PTH/TO/XML/{name}.xml",
  "success": false
}%
$ curl -X DELETE http://localhost:3000/recipes/hoge
{
  "success": false,
  "error": "delete not implemented yet"
}%
$ curl -X PUT http://localhost:3000/recipes/hoge
{
  "success": false,
  "path": "/PTH/TO/XML/{name}.xml",
  "error": "save not implemented yet"
}%     

これを見ると、一通り記述したとおりのレスポンスが返ってきているようです。実際に、前回の記事で使用したPython+Bottleのbottle/test2.pyを起動しておいてcurlで叩いても、同様の結果が返ってきます。

ss 2016-04-23 14.46.36.png

ちなみに、ルーティングが設定されていないURLにアクセスすると、以下のようなエラーが表示されます。

$ curl http://localhost:3000/recipe
Cannot GET /recipe

参考:モックサーバを手軽に作れる他のサービス

api-mockはAPI Blueprint用のモックサーバですが、他にもnpmベースのものやAWS上で作成するものなのがあるようです。

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