问题描述
我在 openApi 3.0 的“组件”部分定义了以下架构:
schema1:
required:
- prop1
- prop2
properties:
prop1
prop2:
enum:
- option1
- option2
prop3
此架构用于将另一个架构中的数组元素定义为:
schema2:
required:
- prop4
- items
- prop6
properties:
prop4
prop5:
type: array
items:
$ref: '#/components/schemas/schema1'
maxItems: 2
prop6
现在在模式 2 的 prop5 中,我希望数组元素具有 prop2 的唯一值。任何想法如何实现这一点。
解决方法
从 OpenAPI 3.1 和 JSON Schema 2020-12 开始,这是不可能的。目前此类验证需要在后端实现。
以下是 JSON Schema 问题跟踪器之一中的相应功能请求:
https://github.com/json-schema-org/json-schema-vocabularies/issues/22
OpenAPI Schema 基于 JSON Schema,因此任何新的 schema 关键字都将来自 JSON Schema。