跳转到内容
类型新原语
阶段快速获胜
难度中等
工作嵌入工具
用于AI 构建者
用于后端开发者
用于生产力高级用户
服务Exec
服务智能体
服务代码
服务文件
为何选 HoodyHTTP 原生
为何选 Hoody可嵌入性
类型新原语
阶段快速获胜
难度中等
工作嵌入工具
用于AI 构建者
用于后端开发者
用于生产力高级用户
服务Exec
服务智能体
服务代码
服务文件
为何选 HoodyHTTP 原生
为何选 Hoody可嵌入性
类型新原语
阶段快速获胜
难度中等
工作嵌入工具
用于AI 构建者
用于后端开发者
用于生产力高级用户
服务Exec
服务智能体
服务代码
服务文件
为何选 HoodyHTTP 原生
为何选 Hoody可嵌入性
类型新原语
阶段快速获胜
难度中等
工作嵌入工具
用于AI 构建者
用于后端开发者
用于生产力高级用户
服务Exec
服务智能体
服务代码
服务文件
为何选 HoodyHTTP 原生
为何选 Hoody可嵌入性
EXEC · AI 原生 HTTP

按需实现的 API 端点

访问不存在的 URL。一个通配符 exec 脚本捕获调用,要求 LLM 编写处理程序,在 V8 沙箱中运行它,然后回答。下一次调用是原生的——路由现在存在。

阅读 exec 文档

URL 如何变成端点

Hoody Exec 让一个 TypeScript 文件提供任何 HTTP 路由,包括捕获全部。使用 ai true,脚本也会有模型句柄注入。组合这两个,请求本身就成为写入处理程序的触发器。

通配符捕获全部5 步 · 一个 EXEC 文件
01

请求到达

GET /api/...

捕获全部下的任何路径都会击中一个脚本。

02

捕获全部唤醒

[...slug].ts

metadata.parameters.slug 携带路径段。

03

LLM 编写处理程序

generateText([ model ])

ai true 注入模型。默认是 gemini-2.5-flash-lite。

04

在 V8 沙箱中运行

isolate.eval

每个脚本在自己的 V8 隔离中运行,设计用于受信任的代码。

05

保存路由

fs.write to scripts/N

下一次调用直接击中保存的文件。无 LLM,原生速度。

scripts/1/api/[...slug].ts
// @mode serverless
// @ai true
// @ai-model anthropic/claude-sonnet-4.5

const path = '/' + (metadata.parameters.slug ?? []).join('/');
const body = req.body ?? []'';

// Already saved? Hand off to the cached route.
const saved = await fs.exists('scripts/1/api' + path + '.ts');
if (saved) return fetch(path, [ method: metadata.method, body ]);

// Otherwise: ask for a handler, sandbox it, save it.
const [ text: handler ] = await generateText([
  model,
  system: 'Return a JS handler body. No imports. Return JSON.',
  prompt: `URL $[metadata.method] $[path]\nQuery $[JSON.stringify(metadata.query)]\nBody $[JSON.stringify(body)]`,
]);

const result = await isolate.eval(handler, [ req, res, fetch ]);
await fs.write('scripts/1/api' + path + '.ts', '// @mode serverless\n' + handler);
return result;

两个魔法注释和一次返回到路由的 fetch。通配符位于 scripts/1/api/[...slug].ts。保存的文件落地在上一级目录。两者都说 HTTP,所以脚本可以在生成期间调用自己的邻近脚本。

三类读者,一个模式

这个机制根据你是谁而以三种不同的方式阅读。它们编织成相同的论证。

面向懒惰的高级工程师

停止编写你一年用两次的端点

管理工具、集成脚本、你一直想接上的报告。需要时访问 URL。处理程序出现。重新加载时保存。

面向代理协作者

代理不是编程 API,而是调用它

你的代理需要一个不存在的路由。在其他地方,它会编写代码、部署、等待,然后调用。这里,它调用。API 在响应到达的同时到达。

面向激进的未来

API 不再被设计,而是被发现

如果你曾经发布的每个端点都只是你实际调用的 URL 的轨迹呢?文档压缩为访问日志。规范压缩为流量。

文档变成访问日志。

周一调用周二文档化
access.log现在是端点
  • 09:14GET/api/analytics/dashboard生效中
  • 11:02POST/api/exports/users.csv生效中
  • 13:48GET/api/admin/seats/audit生效中
  • 16:22POST/api/agent/tools/refund生效中

这替代了什么

当开发人员需要快速添加端点时所使用的模式。每一个都对每个路由都要收脚手架开销。通配符一次性支付。

  • AWS Lambda + API Gateway每个端点的脚手架,冷启动
  • Hasura / PostgREST 自动生成模式优先,返回数据而非行为
  • Vercel / Cloudflare 函数一次性端点,完整部署周期
  • Express / Fastify 脚手架每个路由的样板代码,运行时要保姆式管理
  • Kong / Tyk 插件一个自定义规则的重型网关
  • BFF 微服务每个 UI 怪癖都要维护的服务

文档停止成为计划。它是你调用过的 URL 的轨迹。

阅读 exec 路由指南

阅读其他内容