iii http worker 实战:3 分钟把函数发布成 REST 端点

发布时间:2026/9/15 15:52:50

iii http worker 实战:3 分钟把函数发布成 REST 端点 iii http worker 实战3 分钟把函数发布成 REST 端点【免费下载链接】iiiEffortlessly compose, extend, and observe every service in real-time for the first time ever.项目地址: https://gitcode.com/GitHub_Trending/mo/iii本文带你用 iii 的 http worker 把一个普通函数变成 REST 端点不用自己搭 Web 服务器一条安装命令加几行注册代码端点即可访问。读完并跟着操作你将在本机 3111 端口上得到一个可被 curl 调用的加法接口。快速上手30 秒验证 http worker 端点先给你最终形态确认它能跑之后再逐步骤开。以下是一个 TypeScript 函数的最小可运行写法注册一个http::add函数再用一个type: http的触发器把它绑到POST /math/add。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 }, })); worker.registerTrigger({ type: http, function_id: http::add, config: { api_path: /math/add, http_method: POST }, });worker 启动后用这条命令调用你刚暴露的端点curl -X POST http://localhost:3111/math/add -H content-type: application/json -d {a:2,b:3}预期输出状态码 200响应体{c:5}。看到它说明整条链路已通。分步实现从引擎启动到端点上线第 1 步启动引擎。目的所有 worker 都挂在引擎上引擎不跑端点无从谈起。iii --config config.yaml预期结果引擎输出监听地址HTTP API 在http://localhost:3111。仓库自带的 engine/config.yaml 可以直接参考。第 2 步脚手架生成一个 worker。目的先有一个可编辑的 worker 骨架。iii worker init my-worker --language typescript预期结果当前目录下生成my-worker项目。把第 1 节的最小示例写进它的源码处理函数收到的入参就是请求内容body、headers、方法它的返回值就是 HTTP 响应。第 3 步把 worker 加入引擎。目的让引擎拉起来这个 worker 并注册它声明的触发器。iii worker add ./my-worker预期结果worker 注册成功POST /math/add即刻生效。再发一次第 1 节的 curl应返回{c:5}。不想用 TypeScript触发器写法在各语言 SDK 中一一对应核心都是「函数 id 触发器配置」这一对# Python 等价写法 worker.register_function(http::add, add) worker.register_trigger({ type: http, function_id: http::add, config: {api_path: /math/add, http_method: POST}, })// Rust 等价写法 worker.register_trigger( IIITrigger::Http(HttpTriggerConfig::new(/math/add).method(HttpMethod::Post)) .for_function(http::add), )?;配置与参数详解触发器字段、默认端口 3111 从哪来http 触发器的配置结构定义在引擎源码 engine/src/trigger_formats.rs 的HttpTriggerConfig中字段如下字段含义默认值api_path路由路径支持/users/:id风格的路径参数无必填http_method绑定的 HTTP 方法省略时为GETcondition_function_id处理函数执行前先调用的前置判断函数无可选函数返回值的三个字段构成响应契约status_code成为状态码省略时默认 200body成为响应体headers成为响应头三者都可省略。服务器级设置端口、host、CORS、超时不属于触发器而由 configuration worker 在运行时管理。默认端口3111就写在 engine/worker-compose.yaml 的http段里port: 3111。configuration worker 还支持模板插值例如${HTTP_PORT:3111}会被强制为整数 3111 参与校验相关断言见 engine/src/workers/configuration/store.rs。因此换端口、开 CORS 都走 configuration worker 的运行时通道不必改 worker 代码。验证与常见问题预期响应与易错点排查先确认成功基准对POST /math/add发送{a:2,b:3}应得到{c:5}状态码 200Content-Type为application/json。如果结果对不上按下面三个方向排查⚠️404 或无响应先确认 worker 是否真的加入引擎iii worker add ./my-worker是否执行成功再确认触发器的api_path与实际请求路径逐字一致包括前导/。返回的不是你写的内容检查方法是否匹配。http_method省略时端点默认绑定 GET示例里的 POST 请求只会触发注册了 POST 的函数方法不匹配时你的函数根本不会执行。状态码始终是 200响应字段名必须是status_code写成status会被忽略引擎按默认值 200 返回。错误场景要显式给出如 400、404。延伸阅读http worker 官方文档路径模式、请求与响应的完整字段说明。触发器配置源码HttpTriggerConfig、HttpCallRequest、HttpCallResponse的原始定义。configuration worker 说明运行时端口、CORS、超时如何修改。worker 脚手架指南iii worker init支持的参数与项目结构。【免费下载链接】iiiEffortlessly compose, extend, and observe every service in real-time for the first time ever.项目地址: https://gitcode.com/GitHub_Trending/mo/iii创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/15 15:47:50

MobileNetV3核心实战解析:从设计原理到PyTorch复现与量化部署

做端侧模型选型这几年,我绕不开的一个名字就是 MobileNetV3。不管是给安卓应用塞一个人脸检测模型,还是在 RK3588 上跑实时分割,最后工程化落地的方案里总能看到它的影子。这篇笔记不是官方的论文翻译,而是我结合项目实战重新整理…

2026/9/15 16:02:51

ARM嵌入式无功补偿固件解析与调试指南

简介:本资源是一套基于ARM架构的低压无功补偿装置完整嵌入式开发资料包,面向电力电子、自动化及嵌入式系统工程师,解决配电侧功率因数偏低、电压波动大、线路损耗高等实际工程问题。压缩包共94个文件,含50个头文件(.h&…

2026/9/15 16:02:51

51单片机读取BMP280气压计:从I2C驱动到校准公式完整解析

简介:面向51单片机学习者和嵌入式开发者的BMP085/BMP280气压计读取工程资源,围绕I2C通信协议,完整实现传感器初始化、读取温度与气压原始数据、换算为实际物理量、结合标准大气模型估算海拔高度,并利用传感器内部温度测量进行补偿…

2026/9/15 16:02:51

工业网管用户管理:确定性认证与分层权限设计

1. 为什么工业网管软件的用户管理不能照搬IT系统那一套?在赫斯曼(Hirschmann)Industrial HiVision的实际部署中,我见过太多项目把“用户管理”当成一个后台配置项草草了事——新建几个账号、分配个Admin权限就完事。结果呢&#x…

2026/9/15 4:54:30

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/15 0:01:16

AI英语单词APP开发:自适应学习算法与移动端优化实践

1. 项目概述 作为一名在移动应用开发领域摸爬滚打多年的老手,我最近完成了一个AI英语单词APP的开发项目。这个项目将传统单词记忆方法与现代AI技术相结合,打造了一款能够智能适应不同用户学习习惯的英语学习工具。 市面上大多数单词APP都存在一个通病&a…

2026/9/15 0:01:16

Flutter与OpenHarmony结合开发手语学习APP实战

1. 项目背景与核心价值作为一名同时接触过Flutter和OpenHarmony的开发者,最近我完成了一个基于Flutter for OpenHarmony的手语学习APP实战项目。这个项目最大的特点在于实现了跨平台框架与国产操作系统深度结合的创新实践——用Flutter开发的应用能完美运行在OpenHa…

2026/9/15 0:01:16

六个月成为机器人工程师:从ROS2到SLAM的实战路径

1. 六个月的紧迫感从哪来:先搞清楚你要成为哪种机器人工程师说实话,六个月的期限并不是一个宽松的时间线。市面上任何一本正经的机器人学教材都超过五百页,ROS2的官方文档可以翻到你怀疑人生,再加上ABB、KUKA这些工业机器人厂家动…

2026/9/15 14:22:53

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/14 13:53:59

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/15 11:42:23

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码