2016-09-30 32 views
0

以下招摇定义被发送:指定数组作为GET参数使用扬鞭/ OpenAPI的规格

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,并且服务器将仅接收fields等于column3

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

如何更改它,以便它在参数中发送数组?例如:

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

也许只是将名称从'fields'更改为'fields []'? – user1032531

+0

顺便说一句,你要找的术语是YAML(不是招摇的 - 招摇是产品) –

+0

@ʰᵈˑ是的,它是YAML,但它也可以是JSON。也许我应该说“开放式API规范”? – user1032531

回答

1

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

<?php 

$query = http_build_query([ 
    'fields' => [ 
     'one', 'two', 'three' 
    ], 
]); 

$url = "https://example.com/?".$query; 

是的,fields[]语法应该有所斩断。

+0

感谢Andrzej,但是,我知道如何使用PHP,但希望使用Swagger/OpenAPI规范来完成此操作。 – user1032531