如何在 OpenAPI 的示例声明中使用 $ref?

rom*_*1bl 8 openapi

我正在为一个项目使用 OpenAPI。

我有一个模式“campaign”和另一个模式“campaign_collection”,这只是第一个模式的集合(加上一些额外的元字段)。

Campaign_collection架构:

campaign_collection:
  allOf:
    - $ref: '#/components/schemas/meta_fields'
    - type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/campaign'
    - $ref: '#/components/schemas/collection_meta_fields'
Run Code Online (Sandbox Code Playgroud)

这很好用。但是,当我使用示例时,我想在 Campaign_collection 示例中使用我的 Campaign 示例,如下所示:

活动_集合示例:

campaign_collection:
  value:
    # A few meta fields...
    items:
      - $ref: '#/components/examples/campaign'
    # A few more meta fields...
Run Code Online (Sandbox Code Playgroud)

但是,它不起作用,它在 Swagger UI 中呈现如下:

{
  "items": [
    {
      "$ref": "#/components/examples/campaign"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我可以用来$ref引用示例中的另一个示例吗?我想让我的营销活动集合示例与我的营销活动示例保持同步,而不是手动执行。我可以在 OpenAPI 中做到这一点吗?还有别的办法吗?

Hel*_*len 8

就像example(单数) 一样,该examples.<name>.value密钥不支持$ref. 整个示例必须内联指定。密钥的内容value被获取并按原样显示。

无法引用示例的一部分。