1
releaseme 2023-02-20 10:30:06 +08:00
我觉得 trpc 的定位就是解决 node + ts 全栈开发的痛点。有 1 2 的场景基本可以不用考虑
|
2
wateryessence 2023-02-20 21:12:14 +08:00 1
|
3
pjxxcc 2023-05-28 01:52:55 +08:00
同正在学 trpc ,我看的是 t3 stack ,官网有介绍 trpc 接口如何支持 open api ,允许其他客户端 /postman 等工具访问接口。
官网文档提供了两种方案,[how-do-i-call-my-api-externally]( https://create.t3.gg/en/usage/trpc#how-do-i-call-my-api-externally),推荐用第二种,写出来的接口既支持 trpc 调用也支持 restful 调用 |
4
pjxxcc 2023-05-28 01:54:37 +08:00
我是卡在 trpc 入参声明上了,看文档只支持字符串、数字等基础类型,对于入参有多层嵌套的 object 我一直没找到解决方案,只能扛着 eslint 报错直接跑
|
5
h4avone 2023-07-15 04:59:27 +08:00 1
我来尝试回答下,哈哈
1. 必须使用 ts? 目前生产环境的服务端主流还是 java,py,go JavaScript/TypeScript 前后端都可以用,利用这个特性做的前后端类型共享,再利用下。 当然 java/py/go 也可以做到这点,但是需要遵循 openapi 规范做。 2. 只能用在前后端结合的单仓库中?没有办法把 server 单独分离仓库出来 有办法的,可以把 server 单独放一个仓库,再把 server 类型通过 tsc 单独导出一个 npm 包,只含 ts 类型给 client 端用。 3. 比如账户,支付,内容,IM 的多个分布式服务怎么办?不可能都集成到一个 server 里 同上。 4. 如果 server 要提供通用的多平台 api 怎么办,安卓和 ios 开发用不了 trpc 接口 这个也是可以的,trpc 可以导出 openapi 规范的文档(至于怎么导出,可以搜下对应关键词 trpc openapi);有了 openapi 规范,再找个安卓和 iOS 的 openapi 库,包一包就好啦! 5. 如何生成 api 文档?光有 ts 定义是不够的,看 api 文档更直观 同上,可以生成 openapi 文档;或者写好注释,导出 ts 注释文档,写的时候都有类型提醒,非常方便。 6. 调第三方接口怎么办? 客户端还是得安装 http 请求库,会有多个请求方式共存 这个问题,其他的方式也会存在的,和 trpc 没关系,http 请求库看看 trpc/client 默认用的哪一个。前端都用 fetch ,再安装一个 axios 其实也没多大。 |