Specify an array as a parameter with Swagger

23,312

Solution 1

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

Solution 2

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

Share:
23,312
user1032531
Author by

user1032531

Updated on July 09, 2022

Comments

  • user1032531
    user1032531 almost 2 years

    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