Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Specify an array as a parameter with Swagger

How do I specify an array as a parameter? For instance, post to /persons can be given strings username, firstname, and lastname, and array myArray.

paths:
  /persons:
    post:
      parameters:
        - name: person_what_is_the_purpose_of_this
          in: body
          description: The person to create.
          schema:
            required:
              - username
            properties:
              firstName:
                type: string
              lastName:
                type: string
              username:
                type: string
              myArray:
                type: array
                  items:
                    properties:
                      myArrayElement:
                        type: string
      responses:
        200:
          description: A list of Person
          schema:
            type: array
            items:
              required:
                - username
              properties:
                firstName:
                  type: string
                lastName:
                  type: string
                username:
                  type: string
like image 247
user1032531 Avatar asked Sep 20 '16 14:09

user1032531


2 Answers

swagger: "2.0"
info:
  version: "1.0.0"
  title: Swagger Petstore
host: petstore.swagger.io
basePath: /v2
schemes:
  - http
paths:
  /pets/findByStatus:
    get:
      parameters:
        - in: query
          name: status
          type: array
          items:
            type: string
      responses:
        "200":
          description: successful operation
          schema:
            type: array
            items:
              type: object
              required:
                - name
                - photoUrls
              properties:
                id:
                  type: integer
                  format: int64
                category:
                  type: object
                  properties:
                    id:
                      type: integer
                      format: int64
                    name:
                      type: string
                name:
                  type: string
                  example: doggie
                photoUrls:
                  type: array
                  items:
                    type: string
                tags:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: integer
                        format: int64
                      name:
                        type: string
        "400":
          description: Invalid status value
like image 185
user1032531 Avatar answered Oct 20 '22 10:10

user1032531


You need to specify collectionFormat: multi

For your array it would look like this, be sure to put it on the same level as the type:

myArray:
  type: array
  collectionFormat: multi

Documentation about arrays

like image 39
stepotronic Avatar answered Oct 20 '22 08:10

stepotronic