当前位置: 首页 > 知识库问答 >
问题:

OpenAPI 3 -属性的重用

晋言
2023-03-14

以OpenAPI 3定义为例:

components:
  schemas:
    Foo:
      properties:
        string:
          type: string
        enumField:
          type: string
          enum: ['VALUE_1', 'VALUE_2']
    Bar:
      properties:
        enumField:
          type: string
          enum: ['VALUE_1', 'VALUE_2']

有没有办法重用enumField,还是每次使用时都必须指定它?

共有1个答案

孟昊空
2023-03-14

我不知道是否可以引用一个单独的属性,但是你可以通过模式和拆分来实现。

下面是你能做什么的基本结构示例:

SchemaBase:
  type: object
  properties:
    foo:
      type: string

SchemaFull:
  allOf:
    - $ref: '#/components/schemas/SchemaBase'
    - type: object
      properties:
        bar:
          type: string

在您的情况下可能是这样的:

components:
  schemas:
    EnumField:
      properties:
        enumField:
          type: string
          enum: ['VALUE_1', 'VALUE_2']
    Foo:
      allOf:
        - $ref: '#/components/schemas/EnumField'
        - properties:
            string:
              type: string
    Bar:
      allOf:
        - $ref: '#/components/schemas/EnumField'
 类似资料:
  • 我试图描述的API有一个结构,其中根对象可以包含任意数量的子对象(属性本身就是对象)。根对象中的“键”或属性是子对象的唯一标识符,值是子对象的其余数据。 可以类似地将其建模为数组,例如: 但这既使得识别属性在结构上不那么清楚,又使得子ID之间的唯一性是隐式的,而不是显式的,所以我们想使用一个对象或一个映射。

  • 问题内容: 因此,我试图找出最好的方法(以最少的代码量实现最优雅的方法)以允许重写python中某个属性的特定功能(例如,仅使用getter,仅使用setter等)。我喜欢下面的属性处理方式,因为它们的所有方法都封装在同一缩进的代码块中(更容易看到处理一个属性的函数在哪里停止,而处理一个属性的函数在哪里停止比较容易下一个开始): 但是,如果我想从以这种方式定义属性的类中继承,然后重写setter函

  • 我有一个开放的静态编程语言类,其属性为。 有一个带有函数的Java接口。 我有一个子类继承自open Kotlin类并实现Java接口。 遇到平台声明冲突: 公众开放式娱乐 我尝试过: 以及: 但是,因为这些是继承的方法,所以我实际上不能覆盖其中任何一个的JvmName。 有什么办法可以让这一切顺利吗?

  • 问题内容: 我有一个表示JSON的字符串,我想使用JSON.NET重命名某些属性。我需要用于任何JSON的通用函数。就像是: 怎么做?? 问题答案: 我建议您使用重命名的属性来重构您的JSON。我认为您不必担心速度惩罚,因为通常这不是问题。这是您的操作方法。 这是用法示例:

  • 我不想使用flash属性。 有可能吗?

  • 到目前为止,我已经学会了: 1) 对于循环,我可以使用它来迭代对象中的索引,例如具有数字索引键的数组。 2) 的中,循环为我提供了iterable和custom属性以及继承属性。但是,它忽略了值未定义的属性。 对于例如。 将省略索引,因为它的值是。 但是,它将迭代,和。 3) 的对值而不是键进行迭代。不同之处在于,它只迭代所有iterable属性,忽略了自定义属性,也忽略了从原型链继承的属性。但是