推荐使用:Zod to Json Schema - 精准的类型转换神器!
在TypeScript的世界中,Zod和JSON Schema都是用来确保数据结构正确性的强大工具。现在,有了Zod to Json Schema,你可以轻松地将Zod验证器转换为标准的JSON Schema,从而拓宽了你的代码可兼容性并增强了文档描述能力。
项目介绍
Zod to Json Schema是一个轻量级库,专为开发者设计,将流行的Zod库创建的类型定义转化为符合JSON Schema规范的定义。这使得你在拥有Zod的强大静态类型检查的同时,也能享受到JSON Schema带来的跨语言兼容性和自动文档生成的优点。
项目技术分析
该库支持所有关键的Zod类型,并能进行基本的字符串、数字和数组长度验证以及字符串模式匹配。此外,它还具备处理递归和重复模式的能力,通过内部的$ref
实现引用解析。更值得一提的是,Zod to Json Schema还能直接为目标Open API 3(Swagger)规范的路径生成合适的JSON Schema。
应用场景
- 当你需要将TypeScript中的复杂类型与JSON Schema文档相集成时,例如用于API文档自动生成。
- 在多语言环境中,你希望从TypeScript的Zod类型导出一种通用的数据验证方案。
- 为前端表单验证或后端数据校验提供一个统一的JSON Schema标准。
- 配合Open API 3规范,构建高质量的RESTful API文档。
项目特点
- 全面覆盖:支持Zod的所有相关类型,包括基本类型、联合类型和对象类型的验证规则。
- 递归处理:可以妥善解决复杂的递归和重复定义问题,使得结构化的数据模型得以顺畅转换。
- 灵活配置:提供了多个选项参数来定制生成的JSON Schema,如设置根参考路径、选择不同的引用策略等。
- 开放接口:提供了便利的API调用方式,让开发者可以根据需求轻松整合到现有工作流程中。
- 目标适配:能够针对JSON Schema的不同版本以及Open API 3进行优化输出。
以下是简单的示例代码:
import { z } from "zod";
import { zodToJsonSchema } from "zod-to-json-schema";
const mySchema = z
.object({
myString: z.string().min(5),
myUnion: z.union([z.number(), z.boolean()]),
})
.describe("My neat object schema");
const jsonSchema = zodToJsonSchema(mySchema, "mySchema");
立即尝试这个开源项目,体验高效且准确的类型转换,提升你的代码质量和开发效率!别忘了,如果你需要从JSON Schema反向转换回Zod,还可以使用配套库json-schema-to-zod
。