Skip to content

Conversation

@bamboostrip
Copy link
Contributor

📝 描述

添加对 OpenAPI 3.1 规范中 type 数组格式的支持。

🐛 问题

当使用 OpenAPI 3.1 规范时,type 字段可以是数组格式(如 ["string", "null"]),但项目之前只支持 OpenAPI 3.0 的字符串格式或 anyOf 格式,导致生成的类型为 unknown

OpenAPI 3.1 格式(Rust 项目生成):

"idCard": {
  "type": ["string", "null"],
  "description": "身份证号"
}

- 支持 OpenAPI 3.1 规范中的 type 数组格式(如 ["string", "null"])
- 更新类型定义以支持 type 为数组的情况
- 在 getDefaultType 函数中添加 type 数组处理逻辑
- 在 resolveEnumObject 函数中添加 type 数组处理逻辑
- 在 primitive 函数中添加 type 数组处理逻辑
- 添加测试用例验证 OpenAPI 3.1 type 数组格式

修复 issue: 当使用 OpenAPI 3.1 规范时,type 字段为数组格式会导致生成的类型为 unknown
@changeset-bot
Copy link

changeset-bot bot commented Jan 14, 2026

🦋 Changeset detected

Latest commit: 50f2561

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
openapi-ts-request Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@bamboostrip bamboostrip force-pushed the feat/openapi-3.1-type-array-support branch from 7f12191 to 061df4e Compare January 14, 2026 07:19
Copy link
Member

@rookie-luochao rookie-luochao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

感谢pr

image
  • 建议把测试用例加入common,这是一个小的优化
  • .changeset/openapi-3-1-type-array-support.json 文件是怎么生成的,无法被changeset识别,执行 npm run changeset 来生成changelog

bamboostrip and others added 4 commits January 14, 2026 15:46
- 将测试用例从独立文件合并到 common.spec.ts
- 修复 changeset 文件格式(.json → .md)
- 使用 patch 版本级别(1.12.3)
- 更新 CHANGELOG
@rookie-luochao rookie-luochao merged commit 76f4ecb into openapi-ui:main Jan 14, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants