h4avone
2023-07-15 04:59:27 +08:00
我来尝试回答下,哈哈
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 其实也没多大。