Concepts
钩子(Hooks)
BitRouter 背后的流水线模型——请求流经一系列有序阶段,每个钩子都可以放行、拒绝、改写或观测它。
钩子(Hook)是在请求流经路由器的某个特定点上运行的回调。BitRouter 把每个请求都作为一条有序的阶段流水线来处理;钩子挂接到这些阶段上,并依阶段不同,一个钩子可以放行、拒绝、改写或观测该请求。插件把钩子捆绑起来并安装。
language-model 流水线
主 language_model 流水线按顺序运行五类钩子:
- PreRequest —— 鉴权、策略、限速、余额与护栏检查。每个都返回放行或拒绝;第一个拒绝会终止流水线并映射为一个 HTTP 状态码。
- Route —— 解析或改写该请求的有序路由目标链。
- Execution —— 观测每一次尝试,并在成功或失败时控制回退。
- Stream —— 拦截流式响应分片,以改写、丢弃或中止它们。
- Observe —— 在每个阶段边界上的只读观测;它从不影响请求,且此处的失败也无法破坏请求。
结算(settlement)——计量、计费与回执——在请求完成后针对一个不可变的上下文运行。
trait 签名及完整示例,见 构建插件。
How is this guide?