handlename's blog

コード片など

mimic っていう http mock サーバーを書いた

  • go 1.3.1

引き続き go 勉強中。 mux というものを知ったので これを使ってなにか書いてみた結果。

https://github.com/handlename/mimic

ユースケース

フロントエンドの人と平行して作業をするときに、

「このAPIまだ出来てないの?」
「とりあえず持っくでいいからレスポンス用意してよ」

と言われることがよくある。

そういう場合はとりあえず固定のレスポンスを返すコントローラーを定義して、 開発サーバーに上げたりするのだけど、まあめんどくさい。

なんとかフロントの人で完結できないか?

コードを書かずに動かせるモックサーバーがあれば・・・!

(あとづけです)

最初に書いたとおり mux を使ってみようっていうのがモチベーションなので、 同じことができるツールが有るかとかはぜんぜん調べてない。

これはなに?

JSON で設定を書くとその通りにレスポンスを返してくれる http mock サーバー。

こういう JSON を書いて、

{
    "rules": [
        {
            "method"  : "GET",
            "path"    : "/",
            "content" : "hello"
        }
    ]
}

mimic に食わせると、

$ mimic --config=config.json

こういうレスポンスを返してくれる。

$ curl http://localhost:3390/
hello%

詳しくは README 参照。

なにがうれしいか

今後の展望

  • config.sample.json にしれっと書いてあるけどコード中では使ってない content-type 対応
  • 長めのレスポンスとか JSON とか(いちいちエスケープしないといけない) は設定ファイル中には書きにくいので、 別ファイルを参照できるように

余談

YAPC::Asia 2014 参加中の隙間時間で書いた。 ちょうど聞いてた @deeet さんのトーク がすごいタイムリーでためになった。