2016-04-02 13 views
7

Im folgenden Beispiel möchte ich ein Beispiel für NamedElementArray in seiner Definition angeben. Dazu muss ein Beispiel für ein Array NamedElement für das Attribut elements angezeigt werden.So stellen Sie ein Beispiel für eine Objektdefinition in swagger bereit, das ein Array als eines seiner Attribute enthält

Wie mache ich das? Ich kann Details nicht finden, wie man das in der Swagger-Spezifikation macht.

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 

Antwort

9

Sie haben zwischen hohen Beispiele und niedrigen Niveau diejenigen zu wählen. In Swagger UI, die High-Level-Beispiele vor dem lokalen.

Voll Beispiel auf Swagger Hub

Sie können ein Beispiel für jede Eigenschaft (niedriger Pegel) definieren:

Identifier: 
    type: string 
    format: uuid 
    example: Local UUID example 

NamedElement: 
    type: object 
    properties: 
     name: 
      type: string 
      example: Local identifier example 
     identifier: 
      $ref: "#/definitions/Identifier" 
     required: 
      - name 
      - identifier 

NamedElementArray: 
    type: object 
    properties: 
     name: 
      type: string 
      example: Local name example 
     elements: 
      type: array 
      minLength: 0 
      items: 
       $ref: "#/definitions/NamedElement" 
    required: 
     - name 
     - elements 

In diesem Fall ist das Beispiel, wie dies in Swagger UI aussehen:

{ 
    "name": "Local name example", 
    "elements": [ 
    { 
     "name": "Local identifier example", 
     "identifier": "Local UUID example" 
    } 
    ] 
} 

Aber Sie können auch ein vollständiges Beispiel auf hohem Niveau geben, wie Sie es in Ihrem Beispiel untergetan haben:

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 

In diesem Fall ist das Beispiel, wie dies in Swagger UI aussehen:

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