I'm trying to describe the following post parameter in swagger:
{
"sources": [
{
"id": 101,
"parentId": 201
},{
"id": 102,
"parentId": 201
},{
"id": 102,
"parentId": 202
}
],
"destinationId": 301,
"param1": "value 1",
"param2": "value 2",
}
The issue is that the sources
is an array of objects, that swagger does not seem to support. Here is what I tried:
paths:
/bulk-action:
post:
parameters:
- name: sources
in: formData
type: array
enum:
$ref: '#/definitions/BulkSource'
- name: destinationId
in: formData
type: integer
- name: param1
in: formData
type: string
- name: param2
in: formData
type: string
definitions:
BulkSource:
type: object
properties:
id:
type: integer
parentId:
type: integer
Any idea on how to work around this limitation?
If I understand correctly, your request body to post is a
json
object instead ofform
. In such case, your swagger document need to be modified as follows:in: body
is used instead of multiple parameters ofin: formData
.in
isbody
, aschema
object is required.schema
. If the propertytype
isarray
,items
object is required.Following is an example: