首页 > 解决方案 > 查询中的索引数组

问题描述

我正在努力为必须作为整数索引数组的字段编写参数注释:

voucher_products[0]: 23
voucher_products[1]: 102
voucher_products[2]: 233

我尝试了以下

 *     @OA\Parameter(
 *         name="voucher_products",
 *         in="query",
 *         description="",
 *         required=false,
 *         @OA\Schema(
 *             type="array",
 *               @OA\Items(
 *                 type="integer",
 *               )
 *         )
 *     ),
 

我这样填写表格: 表格

我在查询字符串参数中得到的结果是

voucher_products: 23
voucher_products: 102
voucher_products: 233

如果我在 $_POST 中检查这个字段,它的最终值为voucher_products=233,因为它不会变成一个数组。

我究竟做错了什么?

标签: openapiswagger-php

解决方案


OpenAPI 规范目前没有办法表示包含索引数组的查询字符串,例如

?arr[0]=val1&arr[1]=val2&arr[2]=val3&...

以下是 OpenAPI 规范存储库中的相关问题:
查询参数数组中的索引是否可表示?
支持 deepObject 样式的查询参数的深层对象


但是,如果您的 API 可以接受只有方括号但没有索引的数组

?voucher_products[]=23&voucher_products[]=102&voucher_products[]=233

然后你可以将它定义为一个参数name="voucher_products[]"


推荐阅读