OpenApi 3.0:如何根据用作该数组元素架构的对象中的键属性定义数组元素的唯一性?

问题描述

我在 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。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...