用途:在 TanStack Start 项目中用 createServerFn 编写 RPC 风格的服务端函数,覆盖数据获取、表单提交与受保护变更三类场景。
主要能力:支持 GET 用于路由 loader 与查询,POST 用于创建/更新操作,POST 加鉴权检查用于受保护变更;通过 .inputValidator(schema) 做输入校验(示例使用 zod);handler 中可访问 request,读取 headers、URL 与 cookie 会话;统一错误返回格式 ApiResult<T> = { data: T } | { error: string; code: string }。
使用方式:从 @tanstack/react-start 导入 createServerFn,链式调用 .inputValidator() 与 .handler();GET 函数可直接在 createFileRoute 的 loader 中调用;POST 函数可在表单提交处理中传入 data 调用;鉴权函数通过 auth.api.getSession({ headers: request.headers }) 获取会话并校验归属。
限制与注意:变更操作应使用 POST;必须校验输入;鉴权需从请求头验证会话;错误应返回 { error, code } 而非抛出;服务端错误先用 console.error() 记录,避免返回原始数据库错误;使用 z.email() 而非已弃用的 z.string().email()。复杂查询、鉴权与 REST 路由分别参见 database、auth、tanstack-start 技能,完成后可交由 code-reviewer 代理审查。中间件、文件上传与流式处理见 reference.md。