摘要:將要代理的接口服務器主機名可選。如設為,并且沒有配置選項,將自動切換為方式連接接口服務器可選。所請求的接口是否,可選值為。如果接口是,并且需要數字證書,可使用該選項指定存放地址可選。
justreq(JR Server)
相信各位程序猿、攻城獅都有遇到過接口服務器不給力的情況。有時接口服務器宕機,我們只能干瞪眼。有時也會想,如果能把接口拷貝到本地,那該多好。但是,先不說在本地運行接口服務代價有多大,接口一旦升級,又得再拷貝一次。為什么不能既能即時更新最新接口,又能不懼接口離線呢?答案是可以!
為了解決上述問題,我用業余時間開發了justreq。就像它的名字一樣:“just request”,never offline!,它可以幫助你實現接口永不離線的夢想。
其原理就是在本地進行接口緩存,當接口服務處于離線狀態時,它將直接從本地調取緩存。默認20分鐘更新一次緩存,對于服務器來說,也大大減輕了負擔。
自動緩存每一次接口請求,當測試服務器宕機時,依然可以從容開發
接口替身服務,當后臺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對象外,我們新增加了一些必要的全局函數、屬性
屬性name | description |
---|---|
$_GET | 獲取querystring |
$_POST | 獲取POST方式提交的表單數據 |
$_COOKIE | 獲取cookies |
$_HEADER | 獲取header |
$_FILES | 獲取表單上傳的文件。注意,如需要上傳文件,須將form編碼方式設置為enctype="multipart/form-data" |
name | description |
---|---|
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
為了更好的發揮justreq的功能,我們提供了一些配置規則
name | description |
---|---|
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" } ] }
name | description |
---|---|
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配置 |
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/61817.html
摘要:將要代理的接口服務器主機名可選。如設為,并且沒有配置選項,將自動切換為方式連接接口服務器可選。所請求的接口是否,可選值為。如果接口是,并且需要數字證書,可使用該選項指定存放地址可選。 justreq(JR Server) 相信各位程序猿、攻城獅都有遇到過接口服務器不給力的情況。有時接口服務器宕機,我們只能干瞪眼。有時也會想,如果能把接口拷貝到本地,那該多好。但是,先不說在本地運行接口服...
摘要:而則是主要用于接口緩存的一款。初始化完成后,將在當前目錄生成文件。其它未在規則中的請求,將直接代理并緩存下來,而不進行轉發。每條記錄包含和兩個屬性,并且也是隨機自動生成的。 概述 搜到這篇文章之前,相信你已對Mock Server及mock.js有一定的了解。簡單概括,Mock Server即模擬服務器,用于模擬后端api服務。mock.js是國內的高云開發的一款json數據生成器,主...
摘要:今天,阿里數據庫事業部研究員張瑞,將為你講述雙數據庫技術不為人知的故事。這十年,阿里巴巴數據庫團隊一直有一個使命推動中國數據庫技術變革。 第十個雙11即將來臨之際,阿里技術推出《十年牧碼記》系列,邀請參與歷年雙11備戰的核心技術大牛,一起回顧阿里技術的變遷。 今天,阿里數據庫事業部研究員張瑞,將為你講述雙11數據庫技術不為人知的故事。在零點交易數字一次次提升的背后,既是數據庫技術的一次...
摘要:表示在它下面列出來的資源只有在在線的情況下才能訪問,他們不會被離線存儲,所以在離線情況下無法使用這些資源。不過,如果在和中有一個相同的資源,那么這個資源還是會被離線存儲,也就是說的優先級更高。離線的情況下,瀏覽器就直接使用離線存儲的資源。 最近由于找工作一直沒時間也沒有精力更新博客,找工作真是一件苦逼的事情啊。。。不抱怨了,我們來看看HTML5的新特性---離線存儲吧。 隨著Web A...
閱讀 1402·2021-10-14 09:43
閱讀 992·2021-09-10 10:51
閱讀 1443·2021-09-01 10:42
閱讀 2189·2019-08-30 15:55
閱讀 586·2019-08-30 15:55
閱讀 2339·2019-08-30 14:21
閱讀 1715·2019-08-30 13:04
閱讀 3467·2019-08-29 13:09