Referring to the example below, I would like to provide an example of NamedElementArray
in its definition. This will require showing an example of an array of NamedElement
for the elements
attribute.
How do I do that? I can't find details of how to do this in the swagger specification.
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
Firstly, we start by specifying the array of strings in Swagger using YAML notation. In the schema section, we include type: array with items String.
You have to choose between high level examples and low level ones. In Swagger UI, the high level examples precede the local one.
Full example available on Swagger Hub
You can define an example on each property (low level):
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 that case the example will look like this in Swagger UI:
{
"name": "Local name example",
"elements": [
{
"name": "Local identifier example",
"identifier": "Local UUID example"
}
]
}
But you can also give a full example on high level like you did in your example on 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
In that case the example will look like this in Swagger UI:
{
"name": "Fred",
"elements": [
{
"name": "Identifier1",
"identifier": "ab804529-11d0-4781-a49a-3bbbc40243df"
},
{
"name": "Identifier2",
"identifier": "zzz4529-11d0-4781-a49a-3bbbc40243df"
}
]
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With