resjs
res.js是对AJAX的封装,用res.js调用API非常简单,回调是Promise风格的。
生成res.js
可以用flask-restaction提供的命令行工具或者 https://www.npmjs.com/package/resjs 生成res.js,两个用法一样,生成的代码也是完全一样的。
用法:
usage: resjs [-h] [-d DEST] [-p PREFIX] [-n] [-m] urlgenerate res.js for browser or nodejspositional arguments:url url of api metaoptional arguments:-h, --help show this help message and exit-d DEST, --dest DEST dest path to save res.js-p PREFIX, --prefix PREFIX url prefix of generated res.js-n, --node generate res.js for nodejs, default for browser-m, --min minimize generated res.js, default not minimize
例如:
resjs http://127.0.0.1:5000 -d static/res.js
res.js的用法
HTTP请求使用的是 SuperAgent,Promise使用的是 babel-plugin-transform-runtime。
发出请求时会自动添加 auth token(Authorization) 请求头, 收到响应后会自动将响应头中的 auth token(Authorization) 储存在浏览器 localStorage 中。
使用res.js:
// 模块加载方式(UMD)var res = require('./res.js');//或引用 res.js 文件<script type="text/javascript" src="/static/res.js"></script>
res.ajax
res.ajax 就是SuperAgent模块。
res.resource.action
用法:
res.resource.action({// some data}).then(function(value){// success}).catch(function(error){// error})
例如调用Hello的API:
// Hello Worldres.hello.get({name: 'kk'}).then(function(value){console.log(value.message);}).catch(function(error){// error})
res.xxxToken
// 清除浏览器 localStorage 中的 auth tokenres.clearToken()// 获取浏览器 localStorage 中的 auth tokenvar token = res.getToken()// 设置浏览器 localStorage 中的 auth tokenres.setToken(token)
res.config
//设置请求 url 前缀,可以用来指定请求的服务器res.config.urlPrefix = 'http://127.0.0.1:5000'//设置 auth 请求头,注意要是小写字母res.config.authHeader = 'authorization'
