钩子规范bak
钩子服务本质上是一个实现了飞布钩子规范的WEB服务,可以用任意后端语言实现。
如果你希望实现其他语言的 hook SDK,需要遵从如下协议。
根据用途划分,钩子可分为4大类:局部钩子、全局钩子、授权钩子、文件钩子。
局部钩子(OPERATION钩子)
局部钩子目的是扩展OPEARTION的能力,分别在“OPEARTION执行”前后执行,主要用途是参数校验和副作用触发,如创建文章后发送邮件通知审核。
详情见如下流程图。

前置钩子在 "执行OPERATION"前执行,可校验参数或修改输入参数。
后置钩子在 "执行OPERATION" 后执行,可触发自定义操作或修改响应结果。
除了上述局部钩子,还有两个特殊的局部钩子:自定义处理钩子和模拟钩子。
全局钩子
全局钩子目的是改写原有的request和response,分别在请求最初、opertaion触发前后,可以用来实现全局的参数/响应改写或发送全局的通知,包括预执行、前置、后置钩子。
授权钩子
认证钩子目的是在认证成功后执行自定义操作,可以用来实现用户信息同步,用户信息改写,用户重新校验(需要请求携带参数revalidate)
文件钩子
文件钩子目的是在文件上传前后进行自定义操作,可以用来实现重写文件名和自定义处理
数据代理
飞布服务不仅可以按照约定调用钩子服务,钩子也可以调用其它钩子,此时飞布服务变身为数据代理。
最后更新于