#openapi #swagger-php
#openapi #swagger-php
Вопрос:
Я изо всех сил пытаюсь написать аннотацию параметра для поля, которое должно было бы привести к индексированному массиву целых чисел:
voucher_products[0]: 23
voucher_products[1]: 102
voucher_products[2]: 233
Я попробовал следующее
* @OAParameter(
* name="voucher_products",
* in="query",
* description="",
* required=false,
* @OASchema(
* type="array",
* @OAItems(
* type="integer",
* )
* )
* ),
Я заполняю форму таким образом:
форма
Результат, который я получаю в параметрах строки запроса, является
voucher_products: 23
voucher_products: 102
voucher_products: 233
Если я проверю это поле в $_POST , его конечное значение равно voucher_products=233
, поскольку это не превращается в массив.
Что я делаю не так?
Ответ №1:
Спецификация OpenAPI в настоящее время не имеет способа представления строк запроса, содержащих индексированный массив, такой как
?arr[0]=val1amp;arr[1]=val2amp;arr[2]=val3amp;...
Вот связанные с этим проблемы в репозитории спецификаций OpenAPI:
Являются ли индексы в массиве параметров запроса представимыми?
Поддержка глубоких объектов для параметров запроса со стилем deepObject
Однако, если ваш API может принимать массив только с квадратными скобками, но без индексов
?voucher_products[]=23amp;voucher_products[]=102amp;voucher_products[]=233
затем вы можете определить его как параметр с name="voucher_products[]"
помощью .