@alt-stack/zod-openapi
生成 TypeScript 接口, Zod 4 schemas, 并输入 HTTP Request编号 :Response 地图来自OpenAPI JSON.
安装
pnpm add zod
pnpm add -D @alt-stack/zod-openapi
生成
zod-openapi ./openapi.json --output ./src/generated-api.ts
input 可能是本地 JSON 路径或 HTTP( S) URL 。 CLI还支持 --registry 用于执行定制注册计划, --include 用于插入所需进口/定义,以及 --help它总是发出路由图;程序生成器选择与 includeRoutes。 。 。 .
import { openApiToZodTsCode } from "@alt-stack/zod-openapi";
const source = openApiToZodTsCode(document, undefined, {
includeRoutes: true,
});
生成的文件以 do-not-edit 横幅开始. 更改 OpenAPI 源、 注册/ 包含文件, 或生成器选项并重生整个文件 .
品牌类型
添加 x-altstack-brand 以给其输出一个标出型号的特性方案:
{ "type": "string", "format": "uuid", "x-altstack-brand": "UserId" }
发电机发射 z.string().uuid().brand<"UserId">() 和出口
UserId 类型,使用该包的混凝土类型别名常规。 参考资料,
参数、可选和无效属性、阵列项目和保留工会成员的
商标。 用它生成的图案分析一个值,然后指定给 UserId。 。 。 .
TypeScript HTTP客户端需要解析出路径参数的品牌标识符.
查询参数和请求机构保留其计划输入类型,包括
无花纹弦. 品牌除了基本计划之外,没有增加运行时间验证.
名称必须是ASCII标识符([A-Za-z_][A-Za-z0-9_]*)而且不得保留
单词或与其它组件类型相撞。 重用不兼容的名称
base 类型产生生成错误。 每种用途都保持自己的验证限制.
空的成功反应
宣布的2xx答复,没有 content (或带一空 content 地图)
z.undefined() 在生成时 Response 地图。 例如,无内容 204
打开 /v1/sessions/{id}/logout 生成成功分支 code: "204" 财务报告和审定财务报表
body: undefined 包括Fettle和Ky客户端 贾森 null 遗 物 null· ;
非JSON介质类型不被视为空响应.