【发布时间】:2022-08-05 15:55:52
【问题描述】:
我使用 SpringDoc+Swagger 为它制作了一个 REST 端点和一个 open-api 文档。端点的请求主体有一个字段 - 对象集。正如我在生成的文档中看到的,它与数组相同,除了 uniqueItems 字段:
\"fooSet\": {
\"uniqueItems\": true,
\"type\": \"array\",
\"items\": {
\"$ref\": \"#/components/schemas/Foo\"
}
}
前端开发人员使用 openapitools/openapi-generator-cli 使用 open-api 文档与我的端点交互。这个库强制他在这种情况下使用 JS Set。但它无法正确序列化 Set! openapi-generator-cli 为序列化生成了以下代码: JSON.stringify 为任何 Set 返回空数组:JSON stringify a Set
- 前端开发人员如何自定义集合序列化?当然,无需手动编辑生成的代码
- 如何禁用所有 Set 的
uniqueItems而无需将所有 Set 替换为 List,或在每个 DTO 中的每个 Set 上添加注释?
-
看起来像一个已知问题:github.com/OpenAPITools/openapi-generator/issues/11746。尝试那里的 cmets 中提到的解决方法(特别是通过类型映射将 Set 映射到 Array)。
-
谢谢你,海伦。我认为您是对的,稍后我将尝试此解决方法。我想知道在如此受欢迎的图书馆中,如此严重的错误怎么可能存在这么久
标签: swagger openapi openapi-generator springdoc openapi-generator-cli