Plugins

Plugin HTTP 注入

说明 plugin.http.server 的作用、鉴权策略、以及什么样的场景适合用 HTTP 注入

Plugin HTTP 注入

plugin 可以声明:

http: {
  runtime: {
    authPolicies: [...],
    register({ app, getContext, pluginName }) {
      // register routes
    },
  },
}

它解决什么问题

它让 plugin 自己声明:

  • 需要哪些 runtime HTTP 路由
  • 这些路由需要什么鉴权策略

而 server 侧只负责统一装配。

authPolicies

这里声明的是:

  • 这组路由应该怎么鉴权

它的意义是:

  • plugin 只声明自己的安全需求
  • runtime / console 负责消费这份声明

register

这里是真正把路由挂到 runtime Hono app 上的地方。

plugin 不需要自己启动 server,只需要把路由注册函数提供出来。

当前最典型的例子

workboard plugin 当前会注入:

  • GET /api/workboard/snapshot

这就是现在最标准的 runtime HTTP plugin 例子。

什么时候适合用 plugin HTTP

这些场景通常适合:

  • 你要暴露一个专门的 runtime HTTP 端点
  • 这个端点更像 plugin 功能面,而不是 session 面
  • 你希望它和 plugin 的 availability、鉴权、控制面视图保持一致

什么时候不适合

如果你只是:

  • 做一般 session 对话
  • 暴露 SDK session 路由

那应该仍然优先使用 agent 自带的 session HTTP 能力,而不是自己重复造一层 plugin HTTP。

相关文档