SuperAPI AI 工具集

orpc-guide

通用与其它

查看项目

更新于 10-15 23:24

技能介绍

用途:oRPC(@orpc/* 包)是类型安全的 RPC 框架,将端到端类型安全与 OpenAPI 兼容性结合,适用于需要类型安全 API 的 TypeScript 项目。它不适用于通用 RPC/gRPC 指南、纯 tRPC 项目(除非迁移到 oRPC)或无 oRPC 的通用 TypeScript API 开发。

主要能力:支持过程(procedures)、路由(routers)、中间件、上下文注入、错误处理、文件上传/下载、SSE 流式传输、Server Actions 和契约优先开发。提供 20 多个框架适配器,支持 Zod、Valibot、ArkType 及任何 Standard Schema 库。内置辅助功能包括 Cookie 管理、签名、加密、限流和事件发布。

使用方式:安装 npm install @orpc/server@latest @orpc/client@latest,OpenAPI 支持需额外安装 npm install @orpc/openapi@latest。要求 Node.js 18+(推荐 20+)、Bun、Deno 或 Cloudflare Workers,推荐 TypeScript 严格模式。通过 os 定义过程,用 .input() 验证输入、.handler() 处理逻辑,可组合成路由。服务端使用 RPCHandler 处理请求,客户端通过 RPCLink 创建类型安全客户端。服务端可直接调用过程,无需 HTTP 开销,适合 SSR。

适用场景:需要类型安全 API 的 TypeScript 全栈项目、OpenAPI 兼容的 REST 接口、SSR 场景、实时流式传输、文件上传等。

限制:.handler() 是唯一必需方法;建议显式指定 .output() 以提升 TypeScript 性能;ORPCError.data 会发送给客户端,不可包含敏感信息;框架 body parser 需在 oRPC 中间件之后注册;RPCHandler 使用专有协议,仅适用于 RPCLink,OpenAPIHandler 才兼容 REST/OpenAPI;不支持分块/可续传上传,AsyncIteratorObject 不支持 File/Blob;React Native 的 Fetch API 有限制,需使用 expo/fetch 或 RPC JSON Serializer 变通方案。非 ORPCError 异常自动转为 INTERNAL_SERVER_ERROR。