NextJS项目如何用OpenAPI Generator生成API服务端存根?
Next.js API服务端存根生成解决方案
复用typescript-node生成器的可行方案
可以复用typescript-node生成器,但需要手动调整代码适配Next.js的/api路由规则:
- 先执行生成命令:
openapi-generator-cli generate -i data/api/openapi.yaml -o src/api/server-stubs -g typescript-node,建议单独指定输出目录,避免和客户端代码冲突 - 适配Next.js路由规范:
- Pages Router:在
src/api下创建对应接口的路由文件(比如src/api/users.ts),导入生成的控制器逻辑,把Express风格的请求处理转换为Next.js的NextApiRequest/NextApiResponse处理逻辑,导出默认的handler函数 - App Router:在
app/api下创建对应接口的路由目录(比如app/api/users/route.ts),导出GET/POST等对应HTTP方法的函数,调用生成的控制器方法,同时处理请求参数、响应格式的适配
- Pages Router:在
- 清理冗余依赖:移除生成代码中
express相关的依赖,只保留类型定义和核心业务逻辑部分
其他替代方案
- 手动编写存根:直接用已生成的
typescript-fetch客户端的类型定义(请求参数、响应体类型),手动创建Next.js API路由文件,编写空实现或占位逻辑,后续再填充业务代码,这种方式灵活度高,适合接口数量不多的场景 - 社区生成器:部分社区维护的OpenAPI生成器支持直接生成Next.js风格的服务端路由,可自行查找适配的生成器(注意确认维护状态)
- 自定义转换脚本:写个简单的Node脚本,自动把
typescript-node生成的Express代码转换成Next.js API格式,比如提取控制器里的参数校验、业务逻辑,替换成Next.js的请求处理模式
内容的提问来源于stack exchange,提问作者checklist
相关产品推荐
相关产品推荐

