titbit-api

api middleware for titbit

Usage no npm install needed!

<script type="module">
  import titbitApi from 'https://cdn.skypack.dev/titbit-api';
</script>

README

titbit框架的api组件

通过中间件的形式提供一个前后端通用的方案,使用JSON格式,属性status作为状态标识。当然,可以设置rest选项为true利用HTTP状态码作为请求正确的判断标志。

使用


const titbit = require('titbit');

const tapi = require('titbit-api');

let api = new tapi({
    //使用捕获错误的方式,
    //程序的执行错误不会返回500,会正确返回JSON数据,但是status属性是ERROR。
    catchError: true
});

let app = new titbit();

//添加中间件,api.mid函数会生成对应的中间件函数。
//这之后,请求和中间件中可以通过c.apiset返回数据。
app.use(api.mid());

//客户端通信的文件写入到apicli.js文件,交给前端,前端开发者自行决定如何使用。
//把api挂载到window对象上,这样会全局可以使用api直接调用。
//api中的request用于发起请求。
api.writeClientFile('./apicli.js', 'window');

//...

REST模式


const titbit = require('titbit');

const tapi = require('titbit-api');

let api = new tapi({
  catchError: true,
  rest : true
});

let app = new titbit();

//添加中间件,api.mid函数会生成对应的中间件函数。
//这时候,apiset会把第一个参数作为HTTP的状态码。
app.use(api.mid());

//客户端通信的文件写入到apicli.js文件,交给前端,前端开发者自行决定如何使用。
//把api挂载到window对象上,这样会全局可以使用api直接调用。
//api中的request用于发起请求。
api.writeClientFile('./apicli.js', 'window');

c.apiset

在运行以上代码,添加中间件后,请求上下文中会存在apiset接口用于设置返回的数据。参数格式:

普通API模式


/**
 * @param {string} st 字符串状态码
 * @param {stirng|array|object|buffer|number} data 要返回的数据
*/
c.apiset = (st, data = null) => {
  c.res.body = self.ret(st, data)
}

REST模式


/**
 * @param {string} st HTTP状态码
 * @param {stirng|array|object|buffer|number} data 要返回的数据
*/
c.apiset = (st, data = null) => {
  c.status(st)
  c.res.body = data
}