Golang でモックサーバーを作った
概要
Go で REST API 用のモックサーバーを作りました。
- バイナリの実行で、モックサーバーが起動する
- handler をパッケージにすることで、テストでも使える
ということを意識しました。
gostub/gostub(紹介記事)を参考にさせていただき、rakyll/statik でダミーデータの json ファイルもバイナリに加えれるようにしました。
汎用的に使えるかも?と思ったり。
使い方
README.md に記載の通りですが、
clone して、statik で ダミーデータの json ファイルを Go バイナリ化し、go build すればモックサーバーのできあがりです。
あとはそれを起動して、REST API を叩くなり、
handler パッケージをテストで利用するなり、できます。
ダミーデータの追加方法
mock_data/
にダミーデータのレスポンスを追加して、mock_data/routes.json
に呼び出し方を追加すればOKです。
(statik -src=$PWD/mock_data
でダミーデータの json ファイルの Go バイナリの更新も忘れずに)
header と param で呼び出すダミーデータの json を指定できます。
[kawabatas@MBA ~]$ curl http://localhost:8888/hello { "message": "hello default" } [kawabatas@MBA ~]$ curl -H 'X-FOO:BAR' http://localhost:8888/hello { "message": "hello with header" } [kawabatas@MBA ~]$ curl http://localhost:8888/hello?foo=bar { "message": "hello with param" } [kawabatas@MBA ~]$ curl -X POST http://localhost:8888/hello -d '{"foo":"bar"}' { "message": "hello with param" }
説明動画