Categories
Ruby

simulate http api(json) server.

有这样的一种场景:客户端、后台同时开发。客户端组的同事等后台的接口,而后台的同事在忙于写逻辑实现,为了解决这个问题,去年我用ruby写了一个模拟器,删除公司的业务代码,只保留两个简单的接口,已经放在 gits上 https://gist.github.com/lytsing/d2db3e588990b69e616b。这样,后台的同事定义好接口,也顺便把模拟器给写好了,这样两边都不影响,腾出中间的时间磨合调整接口参数。

ruby是很简单的解释性脚本语言,开发、测试、客户端不需要太多的ruby开发经验,基本上照着写就够了。我们系统小概率出现 302、500、502、503这样的http返回码,而测试组的同事需要拿客户端反复测试,才能出现,浪费不少时间,直接编辑模拟器的脚本,可以手动修改返回码。

如果要支持 gzip数据压缩,前面加上一个 nginx做转发就好了:
假设是使用系统自带的nginx,编辑/etc/nginx/nginx.conf,新增加:

server {
  listen       80;
  server_name  localhost;

  server_name localhost:8080;
  location / {
    proxy_pass http://localhost:8080;
  }
}

新增文件 /etc/nginx/conf.d/gzip.conf,内容为:

gzip on;
gzip_comp_level  9;
gzip_proxied any;
gzip_types application/json;
gzip_vary on;
If you enjoyed this post, make sure you subscribe to my RSS feed!

Leave a Reply

Your email address will not be published. Required fields are marked *