使用Swagger/OpenAPI规范指定要作为GET参数发送的数组



下面的swagger定义:

swagger: '2.0'
host: example.com
paths:
  /theResource:
    get:
      parameters:
        - $ref: '#/parameters/fields'
parameters:
  fields:
    name: fields
    description: Fields to return
    in: query
    type: array
    collectionFormat: multi
    uniqueItems: true
    items:
      type: string
      enum:
        - column1
        - column2
        - column3

将生成以下URL,并且服务器将只接收等于column3fields

http://example.com/theResource?fields=column1&fields=column2&fields=column3

我如何改变它,使它在参数中发送一个数组?例如:

http://example.com/theResource?fields[]=column1&fields[]=column2&fields[]=column3

在PHP中,你可以使用http_build_query,它将为你构建正确的URL查询部分

<?php
$query = http_build_query([
    'fields' => [
        'one', 'two', 'three'
    ],
]);
$url = "https://example.com/?".$query;

是的,fields[]语法应该可以做到这一点。

最新更新