话题动态
发起者
老陈择之
话题状态
等待首个回复
参与人
1
互动热度
0
最近帮团队重构接口层基建,又遇到了这个绕不开的问题:基于 OpenAPI / Swagger,前端的代码生成到底该做到什么程度。
聊聊我这些年折腾下来的取舍:
openapi-typescript:只产出纯 TS 类型定义。好处是极度轻量、零运行时侵入,请求库你想用 Axios、原生 fetch 还是自研 SDK 都不受限。缺点是调用层依然要手写模板代码,自动化只走了一半。
Orval:不仅出类型,还能直接生成 TanStack Query(React Query)、SWR 的 Hooks 和请求客户端。效率拉满,但前提是后端的 OpenAPI Spec 必须写得足够标准。一旦后端定义随性,或者公司网关有奇奇怪怪的拦截逻辑,改生成配置和模版的心智负担其实不低。
自研脚本(基于 AST 或 openapi-generator):适合有历史包袱、私有 RPC 协议转换,或基建要求极高的大型项目。自由度最高,但维护成本也摆在那里,往往最后变成某位离职老哥留下的黑盒。
我个人的经验是:如果团队后端交付质量极高、协议规范,Orval 配合 React Query 是真香;但凡后端稍微有些放飞自我,用 openapi-typescript 保住类型底线,把网络请求的控制权留给自己,往往是维护成本最低的选择。
好奇大家目前在生产环境主要用哪种方案?你们更倾向于“只生成纯类型”,还是“连请求 Client / Hooks 一起全自动化”?
全部回复(0)