恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
如何用 iii http worker 快速把函数变成 REST 端点(完整指南)
首页
资讯中心
/
如何用 iii http worker 快速把函数变成 REST 端点(完整指南)
如何用 iii http worker 快速把函数变成 REST 端点(完整指南)
发布时间:2026/9/15 16:16:05
如何用 iii http worker 快速把函数变成 REST 端点完整指南【免费下载链接】iiiEffortlessly compose, extend, and observe every service in real-time for the first time ever.项目地址: https://gitcode.com/GitHub_Trending/mo/iii手上有个函数哪怕只是算两个数的和你希望别的系统能通过 HTTP 调用它但不想再搭一套 Express 或 FastAPI——这正是 iii http worker 解决的场景在 worker你自建的、承载业务函数的独立服务进程里注册一个函数再绑定一个 http 触发器trigger即「匹配到什么事件就执行哪个函数」的绑定声明函数就成了一个监听在默认端口 3111 上的 REST 端点。本文带你走一遍 iii 创建 REST 端点的完整过程从引擎engineiii 的常驻主进程负责注册与路由各请求启动到用 curl 验证响应总共只有几条命令。engine、worker 与 trigger 的关系把引擎想成话务台worker 是话务台里的一间办公室trigger 则是通讯录上的分机分配条请求进来话务台按分机把呼叫转给对应办公室。http worker 负责的是对外 HTTP 这条线路——它监听端口把每个匹配「方法 路径」的请求转发给你注册的函数函数的返回值原样变成 HTTP 响应。和自建 Web 服务器相比分工是这样的方面自建 Express / FastAPI / Axumiii http worker路由注册写路由表代码一条 trigger 配置进程部署多一个服务进程要维护iii worker add一条命令挂入引擎端口 / CORS / 超时改配置文件后重启由 configuration worker 运行时修改configuration worker 是引擎内置的一个特殊 worker专门管理其他 worker 的运行时配置所以调整监听端口这类操作不需要重新部署 http worker 本身。4 条命令搭出第一个端点先把 http worker 加入项目。项目级 worker 由所在目录的 worker-compose.yaml 统一管理这条命令就是把它登记进去iii worker add http预期看到 worker-compose.yaml 中出现 http 条目带有默认端口、host 与 CORS 规则。如果引擎还没运行先启动它iii --config config.yaml预期看到引擎进入常驻状态配置文件里声明的内置 workerconfiguration、state 等陆续上线。接着用脚手架生成一个新 worker从零写 worker 可参考worker 创建指南iii worker init my-worker --language typescript预期在当前目录生成 my-worker里面已包含 SDK 连接代码。现在把处理函数注册进去——入参是请求内容返回值的status_code、body、headers三个字段分别对应响应的状态码、响应体和响应头import { registerWorker } from iii-sdk; const url process.env.III_URL; if (!url) throw new Error(III_URL must be set); const worker registerWorker(url, { workerName: my-worker }); worker.registerFunction(http::add, async (payload: { body: { a: number; b: number } }) ({ status_code: 200, body: { c: payload.body.a payload.body.b }, headers: { Content-Type: application/json }, }));Python 与 Rust 的 SDK 结构完全一致注册同名函数再用相同形状的 config 调register_trigger完整样例见仓库 docs 目录下的 http worker 指南。最后把函数绑定到POST /math/addworker.registerTrigger({ type: http, function_id: http::add, config: { api_path: /math/add, http_method: POST }, });把 worker 挂入引擎指向它的目录即可iii worker add ./my-worker预期看到引擎的 worker 列表里出现 my-worker。从这一刻起发往 /math/add 的 POST 请求都会执行你的函数。iii http 触发器配置的 3 个字段触发器配置总共就 3 个字段结构体定义在引擎侧的 trigger_formats.rs默认行为也都能从注释里确认字段默认值说明api_path必填路由路径原生支持/users/:id这类路径参数模式http_methodGET可取 GET / POST / PUT / DELETE / PATCH / HEAD / OPTIONScondition_function_id无可选调用处理函数前先执行一个前置函数做条件判断两个细节值得留意。其一api_path不是普通字符串写成:id的段就是路径参数函数内部可直接取到具体值不需要自己解析 URL。其二http_method省略时按 GET 处理——写只读端点时这个字段可以直接省掉。至于condition_function_id它相当于路由层的「门卫」请求先经过一个前置函数判断通过才进入真正的业务函数适合放鉴权或参数校验这类逻辑。用 curl 验证再避开 3 个坑 触发器注册后直接请求引擎的 HTTP 端口。http worker 默认监听 3111仓库里的 worker-compose.yaml 中直接写着port: 3111curl -X POST http://localhost:3111/math/add \ -H content-type: application/json \ -d {a:2,b:3}预期得到 200响应体是{c:5}。如果结果不符按顺序排查这几种情况连接被拒绝——引擎没启动。先执行iii --config config.yaml再发请求。引擎在跑但返回 404——方法或路径不匹配。最典型的是代码里忘了写http_method触发器实际绑的是 GET而 curl 发的是 POST把触发器注册和-X的值逐字对照一遍。3111 端口被占用——端口不必固定。端口、host、CORS、超时这些服务器设置都由 configuration worker 在运行时管理按配置文档走它的通道改端口即可改完即时生效无需重新部署 worker。除了 curl也可以从控制台验证Triggers 页面左侧列出全部触发器右侧面板选中一个 http 触发器后填好参数点 SEND REQUEST 就能直接发请求见下图。接下来可以看什么一个函数加一条触发器就是一个 REST 端点在 iii 里扩一个新接口的成本只是多注册一个函数和几行配置而监听、CORS、超时这些服务器层面的琐事都交给了引擎。等熟悉这套写法后还可以把 http 和 queue、cron 触发器组合起来同步入口走 http异步任务丢进队列定时调度交给 cron。延伸阅读http worker 指南路径模式、方法、请求与响应处理的完整说明configuration worker 文档运行时修改端口、CORS 与超时的具体操作【免费下载链接】iiiEffortlessly compose, extend, and observe every service in real-time for the first time ever.项目地址: https://gitcode.com/GitHub_Trending/mo/iii创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考