Je définis une spécification API dans swaggerhub. La demande/contacts renvoie un tableau de contacts. La définition est ci-dessous:
/contacts:
get:
tags:
- contacts
summary: Get all the contacts
description: This displays all the contacts present for the user.
operationId: getContact
produces:
- application/json
- application/xml
responses:
200:
description: successful operation
schema:
$ref: '#/definitions/AllContacts'
400:
description: Invalid id supplied
404:
description: Contact not found
500:
description: Server error
definitions:
AllContacts:
type: array
items:
- $ref: '#/definitions/ContactModel1'
- $ref: '#/definitions/ContactModel2'
ContactModel1:
type: object
properties:
id:
type: integer
example: 1
firstName:
type: string
example: 'someValue'
lastName:
type: string
example: 'someValue'
ContactModel2:
type: object
properties:
id:
type: integer
example: 2
firstName:
type: string
example: 'someValue1'
lastName:
type: string
example: 'someValue1'
Pour une raison quelconque, il ne renvoie que le deuxième objet et non l'ensemble du tableau d'objets. J'utilise OpenAPI spec 2.0 et je pense que les tableaux ne sont pas bien pris en charge dans cette version
Un tableau d'objets est défini comme suit. La valeur de items
doit être un modèle unique qui décrit les éléments du tableau.
definitions:
AllContacts:
type: array
items:
$ref: '#/definitions/ContactModel'
ContactModel:
type: object
properties:
id:
type: integer
example: 1
firstName:
type: string
example: Sherlock
lastName:
type: string
example: Holmes
Par défaut, Swagger UI affiche les exemples de tableau avec un seul élément, comme ceci:
[
{
"id": 1,
"firstName": "Sherlock",
"lastName": "Holmes"
}
]
Si vous souhaitez que l'exemple de tableau inclue plusieurs éléments, spécifiez le multi-élément example
dans le modèle de tableau:
definitions:
AllContacts:
type: array
items:
$ref: '#/definitions/ContactModel1'
example:
- id: 1
firstName: Sherlock
lastName: Holmes
- id: 2
firstName: John
lastName: Watson