[英]How to define an example request body containing an array of complex objects in Swagger?
I am trying to write the Swagger spec for a service that posts an array of objects as request body. 我正在尝试为服务发布Swagger规范,该服务将一系列对象发布为请求主体。 I would like the user to be able to test the service with a specific set of multiple different complex objects in the array as the default sample inputs. 我希望用户能够使用数组中一组特定的一组多个不同复杂对象作为默认样本输入来测试服务。
So far I have the following code defining the service and complex object: 到目前为止,我有以下代码定义了服务和复杂对象:
paths:
/myService
post:
summary: test 123
description: test 123
parameters:
- name: bodyParamsObject
description: 'Object containing any / all params in the body'
in: body
required: true
schema:
properties:
data:
$ref: '#/definitions/myInputArray'
responses:
200:
description: OK
schema: myOutputArray
definitions:
myInputArray:
type: array
items:
$ref: '#/definitions/myComplexObject'
myOutputArray:
type: array
items:
$ref: '#/definitions/myComplexObject'
myComplexObject:
type: object
properties:
description:
type: string
example: 'Example Item'
size:
example: 552
type: integer
format: int32
hasAdditionalProperties:
type: boolean
example: true
The output array is coming back correctly, but there is only one item in the model schema. 输出数组可以正确返回,但是模型架构中只有一项。
How can I make the sample request body contain multiple different items in the array? 如何使样本请求正文在数组中包含多个不同的项目?
I was able to solve this by using the example property on the object definition and filling it with the array in json. 我可以通过在对象定义上使用example属性并将其填充为json中的数组来解决此问题。
definitions:
myInputArray:
type: array
items:
$ref: '#/definitions/myComplexObject'
example: [
{
"description": "Example Item 1",
"hasAdditionalProperties": true,
"size": 750,
},
{
"description": "Another example",
"hasAdditionalProperties": false,
"size": -22,
},
{
"description": "Last one",
"hasAdditionalProperties": true,
"size": 0,
}
]
myComplexObject:
type: object
properties:
description:
type: string
example: 'Example Item'
size:
example: 552
type: integer
format: int32
hasAdditionalProperties:
type: boolean
example: true
I have similar request body with another object appending to an array. 我有类似的请求正文,另一个对象附加到数组。 Expected: 预期:
{
"data": [
{
"name": "nodename1",
"description": "here is the description",
"expired": "no"
},
{
"name": "nodename2",
"description": "here is the description",
"expired": "yes"
}
],
"time_zone": "IST",
"version": "2.3.0",
"module": "abc"
}
in the YAML i am writing like this : 在YAML中,我这样写:
requestBody:
description: this is the body
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/data'
components:
schemas:
otherDetails:
type : object
required:
- time_zone
- version
- module
properties:
time_zone:
type: string
example: IST
version:
type: string
example: 2.3.0
module:
type: string
example: abc
data:
type: object
required:
- name
- description
- expired
properties:
name:
type: string
example: dummyNode
description:
type: string
example: description
expired:
type: string
example: no
otherDetails:
$ref: '#/components/schemas/otherDetails'
But getting this as part of array only. 但是只能将此作为数组的一部分。 OUTPUT : 输出:
[
{
"data": [
[
{
"name": "nodename1",
"description": "ab804529-11d0-4781-a49a-3bbbc40243df",
"expired": "no"
},
{
"name": "nodename2",
"description": "jlefliwajef-45f4-4322-a453-fafe3",
"expired": "yes"
}
]
],
"time_zone": "string",
"version": "string",
"module": "string"
}
]
Can some one help me on this? 有人可以帮我吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.