永不离线的测试接口效劳——justreq

justreq(JR Server)

置信列位顺序猿、攻城狮都有遇到过接口效劳器不给力的状况。偶然接口效劳器宕机,我们只能干瞪眼。偶然也会想,假如能把接口拷贝到当地,那该多好。然则,先不说在当地运转接口效劳价值有多大,接口一旦晋级,又得再拷贝一次。为何不能既能立即更新最新接口,又能不惧接口离线呢?答案是能够!
为了处理上述问题,我用业余时候开辟了justreq。就像它的名字一样:“just request”,never offline!,它能够协助你完成接口永不离线的妄想。
其道理就是在当地举行接口缓存,当接口效劳处于离线状况时,它将直接从当地调取缓存。默许20分钟更新一次缓存,关于效劳器来讲,也大大减轻了累赘。
《永不离线的测试接口效劳——justreq》

特征

  • 自动缓存每一次接口要求,当测试效劳器宕机时,依旧能够自在开辟

  • 接口替身效劳,当背景GG们还没开辟好接口时,能够用json、txt等替换

  • 独占jrs剧本,仿php,能够定制更天真的接口替身,以至能够用来开辟小型站点

  • 支撑ES6、ES7,开辟更高效

  • 支撑CORS跨域,前端开辟也能够放心运用

  • 支撑https,不管接口采纳http照样https,都能自在应对

装置

起首下载装置Node.js,然后运转以下敕令装置justreq敕令行东西

npm install -g justreq-cli

运转以下敕令装置主顺序

npm install justreq

初始化

运转以下敕令举行初始化

justreq init

设置完成后,将在当前目次天生“.justreq”文件,你能够随时按本身需求举行设置

运用

运转以下敕令启动justreq

justreq start

然后把你的接口地点直接指向justreq效劳(JR Server)即可。比方:

// const API_HOST = "https://test.yourhost.com";
const API_HOST = "http://127.0.0.1:8000";
$.get(API_HOST + "/getInfo.do?userId=1001", callback);

假如须要在启动的同时更新缓存,能够用以下敕令

justreq start -c

假如接口地点暂时改动了,而你又不想修正设置文件,能够用以下敕令

justreq start -h temp.yourhost.com

可运转以下敕令检察更多敕令行参数

justreq start --help

进阶弄法

JRS剧本

接下来要慎重引荐我们首创的jrs剧本了。该剧本基于javascript,因而你完全不须要任何进修本钱即可上手。先来一段:

// getUser.jrs
var userId = $_GET['userId'];
var users = {
    1001 : {name:'zhangsan', age: 22},
    1002 : {name:'lily', age: 21}
};
var user = users[userId];
setCookie('userName', user.name);
echo(JSON.stringify(user));
end();

除了你所熟知的javascript对象外,我们新增加了一些必要的全局函数、属性

属性

namedescription
$_GET猎取querystring
$_POST猎取POST体式格局提交的表单数据
$_COOKIE猎取cookies
$_HEADER猎取header
$_FILES猎取表单上传的文件。注重,如须要上传文件,须将form编码体式格局设置为enctype=”multipart/form-data”

要领

namedescription
echo(string)向页面输出字符串
end([string])完毕当前剧本,输出字符串为可选参数。注:请务必运用该要领完毕剧本,不然剧本将运转至超时
sendFile(filepath)也可直接运用文件做为输出。运用该要领时,没必要再运用end()完毕剧本
setMime(suffix)设置当前输出的mimetype;缺省将尝试json,如自动检测不通过,将切换为txt。可选值为:txt、html、css、xml、json、js、jpg、jpeg、gif、png、svg。如需设置别的范例,可直接运用setHeader函数设置“Content-Type”
setCookie(name, value)设置输出的cookies。完全参数:setCookie(name, value [, expires [, path [, domain [, secure [, httponly]]]]])
setHeader(name, value)设置header,个中’Server’、’Date’由JR Server自动设置,不许可修正

因为jrs剧本完全基于js,并运转于Node.js环境,因而,你能够运用Node.js下面的统统优异模块来举行开辟。
而且,只需你的Node.js版本支撑,你也能够运用ES6/ES7来编写jrs

RULES设置

为了更好的发挥justreq的功用,我们供应了一些设置划定规矩

namedescription
href接口途径,必填。能够运用正则表达式
ignoreArgs可疏忽字段,以逗号支解,能够疏忽一些非症结字段。比方跳过罕见的防缓存的?v=1483884433384,则设置 {"ignoreArgs" : "v"}
noCache不许可缓存该接口,缺省值为许可
subs接口替身,引荐运用我们的jrs剧本,也能够是json、txt

以下是一份样例:

// .justreq
{
    ...
  "rules": [
    {
      "href":       "user.do\\?id=(\\d+)",
      "subs":       "user.jrs?userId=$1"
    },
    {
      "href":       "login.do",
      "noCache":    true
    },
    {
      "href":       "getGoodsInfo.do",
      "ignoreArgs": "v,token,timestamp"
    }
  ]
}

别的设置项

namedescription
host必需。将要代办的接口效劳器主机名
port可选。将要代办的接口效劳器端口,默许80。(如设为443,而且没有设置proxyHttps选项,将自动切换为https体式格局衔接接口效劳器)
cacheTime可选。多久更新缓存,默许20分钟
cachePath可选。缓存寄存途径,默许.jr/cache
substitutePath可选。替身文件寄存途径,默许.jr/subs
jrPort可选。JR Server效劳端口,默许8000
proxyTimeout可选。要求接口超时时候,默许6秒
proxyHttps可选。所要求的接口是不是https,可选值为:auto、yes、no。默许auto(检测port是不是443)。
ssl_ca可选。假如接口是https,而且须要数字证书,可运用该选项指定ca.pem寄存地点
ssl_key可选。假如接口是https,而且须要数字证书,可运用该选项指定key.pem寄存地点
ssl_cert可选。假如接口是https,而且须要数字证书,可运用该选项指定cert.pem寄存地点
onCors可选。是不是开启cors跨域,可选值为:yes、no,默许yes
rules可选。参照RULES设置
    原文作者:vilien
    原文地址: https://segmentfault.com/a/1190000008275112
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞