APIドキュメントからモックサーバを立ち上げるWeb::API::Mockを書いた

APIドキュメント(API Blueprint)からモックサーバを立ち上げるWeb::API::Mockを書きました

Plackで作った事もあり以前紹介したapi-mockよりも、ちょっと便利になっています

APIドキュメントからモックサーバを立ち上げたい - akihitoのログ置き場

  1. モックサーバ立ち上げ時にplackupのオプションが使える
  2. 複数個のAPIドキュメントに対応
  3. 未実装のAPIリストを渡す事でステータス:501を返す

モックサーバからアプリケーションサーバへURL毎にスイッチする

3番目の仕組みを利用することで、nginxを使ってモックサーバからサーバアプリケーションに差し替える事が出来ます

upstream mock_backend {
   server 127.0.0.1:5001;
}

upstream prod_backend {
   server 127.0.0.1:5002;
}

server {

    location ~ ^/ {
         proxy_intercept_errors on;
         proxy_pass http://mock_backend;
         proxy_set_header Host $host;
    }

    error_page 501 =200 @prod;
    location @prod {
        proxy_pass http://prod_backend;
        proxy_set_header Host $host;
    }

モックサーバ(mock_backend)にnot-implemented-urlsオプションで渡したURLが501で返ってくるので、 nginx側でキャッチして、実装したサーバアプリケーションにURL毎にまわせるようになります