Function Creator 是 Convex 生态中的一项技能,用于在 Convex 后端生成安全、类型安全的函数。资料显示,它适用于创建新的查询函数(读取数据)、变更函数(写入数据)、动作函数(调用外部 API、长时间运行任务),以及为 Convex 后端添加 API 端点。
主要能力围绕三类函数展开。查询为只读,不能修改数据或调用外部 API,具备缓存与响应式特性,并在事务中运行。变更为事务性写入,可读写数据库,不能调用外部 API,运行于 ACID 事务并支持冲突自动重试。动作可调用外部 API(如 fetch、AI),可通过 ctx.runMutation 调用变更,但不能直接访问数据库,且没有自动重试;当需要 Node.js 特有 API(如 crypto、第三方 SDK)时,需在文件顶部添加“use node”,且带该指令的文件只能包含动作,不能包含查询或变更。
使用方式上,资料要求始终用校验器定义 args 与 returns,在公开函数中执行身份认证检查(ctx.auth.getUserIdentity()),并进行授权检查(例如校验资源归属)。还要求等待所有 Promise、使用索引查询而非在查询上使用 .filter()、提供描述性错误消息、计划任务调用 internal.* 而非 api.*,并在使用 Node.js API 时将动作放在独立文件中。
资料给出了完整示例,包括带认证的安全查询、带校验的安全变更、调用外部 API 的动作,以及仅供后端调用的内部函数。适用场景为 Convex 后端开发中的 API 端点实现与数据读写逻辑。限制方面,资料未说明该技能的安装方式、收费、平台支持或效果数据,这些信息暂未提供。