This topic created in 1203 days ago, the information mentioned may be changed or developed.
最近社区很多人推荐 trpc
遂结合 nextjs 做了 demo 试了一下
有这么几个问题
1. 必须使用 ts? 目前生产环境的服务端主流还是 java,py,go
2. 只能用在前后端结合的单仓库中?没有办法把 server 单独分离仓库出来
3. 比如账户,支付,内容,IM 的多个分布式服务怎么办?不可能都集成到一个 server 里
4. 如果 server 要提供通用的多平台 api 怎么办,安卓和 ios 开发用不了 trpc 接口
5. 如何生成 api 文档?光有 ts 定义是不够的,看 api 文档更直观
6. 调第三方接口怎么办? 客户端还是得安装 http 请求库,会有多个请求方式共存
5 replies • 2023-07-15 04:59:27 +08:00
 |
|
1
releaseme Feb 20, 2023
我觉得 trpc 的定位就是解决 node + ts 全栈开发的痛点。有 1 2 的场景基本可以不用考虑
|
 |
|
4
pjxxcc May 28, 2023
我是卡在 trpc 入参声明上了,看文档只支持字符串、数字等基础类型,对于入参有多层嵌套的 object 我一直没找到解决方案,只能扛着 eslint 报错直接跑
|
 |
|
5
3l5e0Ddo5BX07ghT Jul 15, 2023 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 其实也没多大。
|