Fake API工具:interfake快速入门

1.interfake是什么?

Interfake is a tool which allows developers of client-side applications of any platform to easily create dummy HTTP APIs to develop against.

Interfake能简便地创建虚假的HTTP API, Interfake是NodeJs开发的,是一款开源工具。

2.使用interfake

2-1.NodeJs install

安装步骤

2-2.interfake install
cd /data1/hugang
npm install interfake --save
2-3.创建虚假HTTP API

在interfake路径下(在上一步安装中会显示,我的项目路径为/data1/hugang/node_modules/interfake),新建一个js文件:my-first-interfake.js(最好以自己要模拟的接口名命名)

var Interfake = require('interfake');
var interfake = new Interfake();
interfake.get('/my-first-interfake').status(200).body({ result: 'true'});
interfake.listen(30002);

解释如下:

new Interfake(options): creates an Interfake object. 

get('/my-first-interfake'), get请求,url为my-first-interfake

status(200): 状态码为200

body({ result: 'true'}):设置接口返回的JSON内容为{ result: 'true'}

interfake.listen(30002): 监听端口30001

执行js

node my-first-interfake.js

访问该fake接口:

curl http://10.13.1.139:30002/my-first-interfake -w %{http_code}     
{
  "result": "true"
}200
2-4.部分高级用法:
1.设置请求参数

query(queryParameters):

interfake.get('/my-first-interfake?id=1').query({id:2}).status(200).body({ result: 'true'});

/my-first-interfake?id=2才生效, /my-first-interfake?id=1不生效

[root@10 tmp]# curl http://10.13.1.139:30002/my-first-interfake
Cannot GET /my-first-interfake
[root@10 tmp]# 
[root@10 tmp]# curl http://10.13.1.139:30002/my-first-interfake?id=1
Cannot GET /my-first-interfake?id=1
[root@10 tmp]# 
[root@10 tmp]# curl http://10.13.1.139:30002/my-first-interfake?id=2
{
  "result": "true"
}[root@10 tmp]# 
2.设置延时

delay(milliseconds)

有2种格式

2.1 固定时间

延迟1s

  interfake.get('/my-first-interfake').status(200).body({ result: 'true'}).delay(1000);
2.2 在一定时间范围内

延迟1s-2s间

interfake.get('/my-first-interfake').status(200).body({ result: 'true'}).delay('1000..2000');
3.设置响应头信息

设置头Date 为2015

 interfake.get('/my-first-interfake').status(200).body({ result: 'true'}).responseHeaders({Date: '2015'})

设置前接口返回的头信息, Date: Tue, 16 Feb 2016 06:54:41 GMT

[root@10 tmp]# curl http://10.13.1.139:30002/my-first-interfake -v
* About to connect() to 10.13.1.139 port 30002 (#0)
*   Trying 10.13.1.139... connected
* Connected to 10.13.1.139 (10.13.1.139) port 30002 (#0)
> GET /my-first-interfake HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: 10.13.1.139:30002
> Accept: */*
> 
< HTTP/1.1 200 OK
< X-Powered-By: Express
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Methods: GET,PUT,POST,DELETE
< Access-Control-Allow-Headers: Content-Type
< Content-Type: application/json
< Date: Tue, 16 Feb 2016 06:54:41 GMT
< Connection: keep-alive
< Content-Length: 22
< 
{
  "result": "true"
* Connection #0 to host 10.13.1.139 left intact
* Closing connection #0
}[root@10 tmp]# 

设置头Date 为2015后,返回 Date: 2015

[root@10 tmp]# curl http://10.13.1.139:30002/my-first-interfake -v
* About to connect() to 10.13.1.139 port 30002 (#0)
*   Trying 10.13.1.139... connected
* Connected to 10.13.1.139 (10.13.1.139) port 30002 (#0)
> GET /my-first-interfake HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: 10.13.1.139:30002
> Accept: */*
> 
< HTTP/1.1 200 OK
< X-Powered-By: Express
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Methods: GET,PUT,POST,DELETE
< Access-Control-Allow-Headers: Content-Type
< Content-Type: application/json
< Date: 2015
< Connection: keep-alive
< Content-Length: 22
< 
{
  "result": "true"
* Connection #0 to host 10.13.1.139 left intact
* Closing connection #0
}
4.HTTP请求的不同方式

get|post|put|patch|delete(url)

声明为post接口

my-second-interfake.js

var Interfake = require('interfake');
var interfake = new Interfake();
interfake.post('/my-second-interfake').status(200).body({ result: 'false'})
interfake.listen(30003);

执行NodeJs

node my-second-interfake.js

只能以post方式请求接口

[root@10 tmp]# curl http://10.13.1.139:30003/my-second-interfake 
Cannot GET /my-second-interfake
[root@10 tmp]# 
[root@10 tmp]# 
[root@10 tmp]# 
[root@10 tmp]# curl http://10.13.1.139:30003/my-second-interfake -X POST
{
  "result": "false"
}
5.代理

proxy(url|options)

代理接口和原接口必须http请求方式一致

my-second-interfake.js将http请求改成与代理接口一致的get方式

interfake.get('/my-second-interfake').status(200).body({ result: 'false'}).proxy('http://10.13.1.139:30002/my-first-interfake')

返回的结果是调用http://10.13.1.139:30002/my-first-interfake的结果

curl http://10.13.1.139:30003/my-second-interfake
{
  "result": "true"
}

wiki: https://github.com/basicallydan/interfake

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值