如何在swagger中提供包含数组作为其属性之一的对象定义示例

如何在swagger中提供包含数组作为其属性之一的对象定义示例,swagger,definitions,Swagger,Definitions,参考下面的示例,我想在其定义中提供一个NamedElementArray的示例。这需要为元素属性显示一个NamedElement数组的示例 我该怎么做?我无法在swagger规范中找到如何实现这一点的详细信息 swagger: '2.0' info: version: "0.0.0" title: Example definitions: Identifier: type: string format: uuid NamedElement: type:

参考下面的示例,我想在其定义中提供一个
NamedElementArray
的示例。这需要为
元素
属性显示一个
NamedElement
数组的示例

我该怎么做?我无法在swagger规范中找到如何实现这一点的详细信息

swagger: '2.0'

info:
  version: "0.0.0"
  title: Example

definitions:
  Identifier:
    type: string
    format: uuid
  NamedElement:
    type: object
    properties:
      name:
        type: string
      identifier:
        $ref: "#/definitions/Identifier"
    required:
    - name
    - identifier
    example:
      name: Identifier1
      identifier: ab804529-11d0-4781-a49a-3bbbc40243df
  NamedElementArray:
    type: object
    properties:
      name: 
        type: string
      elements:
        type: array
        minLength: 0
        items:
          $ref: "#/definitions/NamedElement"
    required:
    - name
    - elements
    example:
      name: Fred
      elements:

paths:
  /elements/{name}:
    get:
      description: |
        Gets `NamedElement` objects, based on the **name** query param.
      parameters:
        -
          name: name
          in: path
          description: Name of element array to return
          required: true
          type: string
      responses:
        200:
          description: Returns a named element array
          schema:
            $ref: "#/definitions/NamedElementArray"
        default:
          description: Return nothing

您必须在高级示例和低级示例之间进行选择。 在Swagger UI中,高级示例先于本地示例

完整示例可在

您可以在每个属性(低级别)上定义一个示例:

在这种情况下,该示例在Swagger UI中如下所示:

{
  "name": "Local name example",
  "elements": [
    {
      "name": "Local identifier example",
      "identifier": "Local UUID example"
    }
  ]
}
{
  "name": "Fred",
  "elements": [
    {
      "name": "Identifier1",
      "identifier": "ab804529-11d0-4781-a49a-3bbbc40243df"
    },
    {
      "name": "Identifier2",
      "identifier": "zzz4529-11d0-4781-a49a-3bbbc40243df"
    }
  ]
}
但您也可以在高层给出一个完整的示例,就像您在
NamedElement
上的示例一样:

NamedElementArray:
    type: object
    properties:
        name: 
            type: string
        elements:
            type: array
            minLength: 0
            items:
                $ref: "#/definitions/NamedElement"
    required:
        - name
        - elements
    example:
        name: Fred
        elements:
            - name: Identifier1
              identifier: ab804529-11d0-4781-a49a-3bbbc40243df
            - name: Identifier2
              identifier: zzz4529-11d0-4781-a49a-3bbbc40243df
在这种情况下,该示例在Swagger UI中如下所示:

{
  "name": "Local name example",
  "elements": [
    {
      "name": "Local identifier example",
      "identifier": "Local UUID example"
    }
  ]
}
{
  "name": "Fred",
  "elements": [
    {
      "name": "Identifier1",
      "identifier": "ab804529-11d0-4781-a49a-3bbbc40243df"
    },
    {
      "name": "Identifier2",
      "identifier": "zzz4529-11d0-4781-a49a-3bbbc40243df"
    }
  ]
}