PerlでHTTP API叩く開発する時モック的なのをサーバ立てずにやってみるテスト

最近 HTTP API 期なわけで、なんでもかんでも API サーバ作って叩き合えば、疎結合だし API サーバの実装は好きにやればいいしいい感じだよねーと思ってるわけです。ビジネスロジックだけじゃなくて、サーバ管理みたいなバックエンド業務も、なんでも MySQL にデータ入れて SQL というインタフェースでみんな叩けばいいよねみたいなのはいい加減やめたい。それ HTTP でいいやん!

で、色々サーバ書いたりとかしてみてるんですが、開発してるときに API 叩かれる側がまだできてないと叩く側を開発できなくてだるいなーとか、クローズドな API 使ってると公開とかするときあれだなーと思ってました。

僕が書くようなレベルって psgi ファイル 1 枚とかでモックだけだったら簡単にかけるので、それをローカルの適当なポートで起動しといて、とかでもいんだけど、もうちょっとかっこよくやりたかった。

色々調べてると、Plack::Clientってのがおもしろそうだったので、試しにそれを使ってみたら意外といい感じに作れたのでバリバリとモックを使って開発してみたものの、ちょっとそっちの開発の方は疲労により断念したので、モックの部分だけ切りだしてまとめてみた。

何がやりたかったかは、大した量ないのでコードみてもらえればよいかと思います。

実際はAPITest.pmっぽい感じで API を扱うオレオレライブラリ書いてあげて、使う側で与えるサーバの指定を変えてあげると、モック使ったり実際のサーバ使ったりと切り替えられる。多分テストとかも書きやすい。

もっと良いやり方あるよーとかあればぜひ教えて頂けると!