@int128

int128.hatenablog.com

OpenAPIで同じキーのパラメータを複数受け取る

OpenAPIで同じキーのパラメータを複数受け取りたい場合は collectionFormat: multi を使います。

collectionFormat

Determines the format of the array if type array is used. Possible values are:

  • csv - comma separated values foo,bar.

  • ssv - space separated values foo bar.

  • tsv - tab separated values foo\tbar.

  • pipes - pipe separated values foo|bar.

  • multi - corresponds to multiple parameter instances instead of multiple values for a single instance foo=bar&foo=baz. This is valid only for parameters in “query” or “formData”.

Default value is csv.

https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#parameterCollectionFormat

例えば、以下のように書くと、GETで /bar?foo=1&foo=2&foo=3 を受け取れるようになります。

/bar:
  get:
    parameters:
    - name: foo
      in: query
      type: integer
      collectionFormat: multi