tRPC 101
概念
RPC(Remote Procedure Call,远程过程调用),tRPC,则是类型安全远程调用
可以代替REST/GraphQL
过程(Procedure)
暴漏给客户端的函数,可以是
一个query,用于取数据
一个mutation,用于写数据,创建、更新删除
一个subscription,用于订约服务器的socket通知
路由(router)
过程的集合
通过mergeRouters,可以实现路由的合并
验证器(Validators)
输入验证器:验证过程调用是否正常
输出验证器:检测从不受信任的来源数据返回是否正确或不会像客户端返回不必要的数据
typescript用于保证在编译时的类型安全
zod用于保证在运行时的类型安全
上下文(context)
用于存放数据库连接或身份验证信息等内容
中间件(middleware)
通过use将中间件添加到过程中,常用于授权检测、日志、过程封装
数据转换器(data transformers)
用于序列化响应数据和输入参数,转换器需要添加到服务端和客户端
使用superjson作为数据转换器,实现数据的序列化与反序列化