自动类型安全
在服务器端进行更改?TypeScript 会在您保存文件之前警告您客户端上的错误!
快速开发体验
tRPC 没有构建或编译步骤,这意味着没有代码生成、运行时膨胀或构建步骤。
框架无关
兼容所有 JavaScript 框架和运行时。它很容易添加到您现有的项目中。
自动补全
使用 tRPC 就像使用 API 服务器代码的 SDK 一样,让您对端点充满信心。
轻量级包大小
tRPC 没有任何依赖项,并且客户端占用空间很小,使其非常轻便。
开箱即用
我们为 React、Next.js、Express、Fastify、AWS Lambda、Solid、Svelte 等提供适配器。
ts
constt =initTRPC .create ();constrouter =t .router ;constpublicProcedure =t .procedure ;constappRouter =router ({greeting :publicProcedure .input (z .object ({name :z .string () })).query ((opts ) => {const {input } =opts ;return `Hello ${input .name }` asconst ;}),});export typeAppRouter = typeofappRouter ;
ts
constt =initTRPC .create ();constrouter =t .router ;constpublicProcedure =t .procedure ;constappRouter =router ({greeting :publicProcedure .input (z .object ({name :z .string () })).query ((opts ) => {const {input } =opts ;return `Hello ${input .name }` asconst ;}),});export typeAppRouter = typeofappRouter ;
1
定义您的过程
创建 tRPC API 的第一步是定义您的过程。
过程是我们用来构建后端的函数。它们是可组合的,可以是查询、变异或订阅。路由器包含多个过程。
在这个过程中,我们使用 Zod 验证器来确保来自客户端的输入完全符合我们的过程预期。我们还将从查询中返回一个简单的文本字符串。
在文件末尾,我们导出路由器的类型,以便我们可以在几分钟内在前端代码中使用它。
ts
const { listen } = createHTTPServer({router: appRouter,});// The API will now be listening on port 3000!listen(3000);
ts
const { listen } = createHTTPServer({router: appRouter,});// The API will now be listening on port 3000!listen(3000);
2
创建您的 HTTP 服务器
接下来,我们使用 appRouter
创建 HTTP 服务器。现在我们有一个运行的 tRPC 服务器!
tRPC 拥有许多适配器,可以满足您的需求。Next.js、Express、Fetch API(Astro、Remix、SvelteKit、Cloudflare Workers 等)、Fastify、AWS Lambda 或普通 Node HTTP 服务器。
ts
consttrpc =createTRPCClient <AppRouter >({links : [httpBatchLink ({url : 'http://localhost:3000',}),],});constres = awaittrpc .greeting .query ({name : 'John' });
ts
consttrpc =createTRPCClient <AppRouter >({links : [httpBatchLink ({url : 'http://localhost:3000',}),],});constres = awaittrpc .greeting .query ({name : 'John' });
3
连接您的客户端并开始查询!
现在服务器已运行,我们可以创建一个客户端并开始查询数据。
我们在创建客户端时传递 AppRouter
类型,以提供与后端 API 匹配的 TypeScript 自动补全和 Intellisense,而无需任何代码生成!
"我创建 tRPC 的目的是让大家能够更快地迭代通过消除对传统 API 层的需求,同时确保我们的应用程序在快速迭代过程中不会出现问题。"
亲身体验,并告诉我们您的想法!
Alex/KATT
tRPC 的创建者
所有赞助商
我们非常感谢所有令人惊叹的 赞助商 他们帮助确保 tRPC 能够持续存在。