推荐开源项目:Zod to OpenAPI

推荐开源项目:Zod to OpenAPI

zod-to-openapiA library that generates OpenAPI (Swagger) docs from Zod schemas项目地址:https://gitcode.com/gh_mirrors/zo/zod-to-openapi

项目介绍

Zod to OpenAPI 是一个强大的工具库,它利用Zod验证库来生成Open API(Swagger)文档。这个项目旨在解决在API开发中同步Zod schema和Open API定义的问题,通过单个源头确保数据一致性。

项目技术分析

该项目扩展了Zod库,为其对象增加了openapi方法,以方便地添加Open API特定的元数据。通过调用extendZodWithOpenApi,你可以一次性配置你的项目,之后就可以直接在Zod schema上使用openapi方法。此外,还提供了OpenAPIRegistryOpenApiGeneratorV3/V31类,用于收集和生成符合指定Open API版本的组件或完整文档。

项目及技术应用场景

Zod to OpenAPI适用于任何使用Zod进行数据验证并希望自动创建Open API文档的项目。这包括但不限于:

  • RESTful API开发,简化接口定义与验证。
  • 微服务架构,统一接口规范描述。
  • 持续集成/持续部署(CI/CD),将文档生成自动化为构建过程的一部分。

项目特点

  1. 代码即文档 - 使用Zod编写的数据模型直接转换成Open API文档,避免手动维护两套重复的定义。
  2. 类型支持丰富 - 支持多种Zod类型的映射,如对象、字符串、数字等,并允许自定义Open API元信息。
  3. 灵活性 - 提供注册表和直接使用schema两种方式来定义接口,满足不同场景需求。
  4. 兼容性 - 可生成Open API v3.0.x和v3.1.0版本的文档,适应不同的平台要求。
  5. 易于集成 - 非侵入式设计,只需一次初始化设置,就能轻松整合到现有项目中。

示例

下面是一个简单的例子,展示了如何定义一个用户对象以及GET用户的接口:

const UserSchema = z
  .object({
    id: z.string().openapi({ example: '1212121' }),
    name: z.string().openapi({ example: 'John Doe' }),
    age: z.number().openapi({ example: 42 }),
  })
  .openapi('User');

registry.registerPath({
  method: 'get',
  path: '/users/{id}',
  // ...
  responses: {
    200: {
      content: {
        'application/json': {
          schema: UserSchema,
        },
      },
    },
  },
});

然后,通过OpenApiGeneratorV3OpenApiGeneratorV31生成对应的Open API YAML或JSON。

总之,Zod to OpenAPI是提升API开发效率的一个利器,特别适合追求代码简洁性和自动化的企业和个人开发者。现在就加入这个开源社区,让你的API文档变得既准确又易于维护吧!

zod-to-openapiA library that generates OpenAPI (Swagger) docs from Zod schemas项目地址:https://gitcode.com/gh_mirrors/zo/zod-to-openapi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孔岱怀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值