Сериализация вложенных свойств как данных формы с переполнением стека Swagger

Вот как делается пример объекта кодирования в OpenApi
https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md

requestBody:
content:
multipart/mixed:
schema:
type: object
properties:
id:
# default is text/plain
type: string
format: uuid
address:
# default is application/json
type: object
properties: {}
historyMetadata:
# need to declare XML format!
description: metadata in XML format
type: object
properties: {}
profileImage:
# default is application/octet-stream, need to declare an image type only!
type: string
format: binary
encoding:
historyMetadata:
# require XML Content-Type in utf-8 encoding
contentType: application/xml; charset=utf-8
profileImage:
# only accept png/jpeg
contentType: image/png, image/jpeg
headers:
X-Rate-Limit-Limit:
description: The number of allowed requests in the current period
schema:
type: integer

Я пытаюсь добиться того же самого, но с помощью swagger-php.
То, что я не знаю, как пройти encodings в @OA\MediaType кодировать test собственность как multipart/form-data потому что по умолчанию кодируется как application/json

EX:

 * @OA\Post(
*     path="/admin/test",
*     summary="Create new Test",
*     description="Will attempt to create a new Test",
*     tags={"Admin Test"},
*     @OA\RequestBody(
*          @OA\MediaType(
*              mediaType="multipart/form-data",
*              encoding={}
*              @OA\Schema(
*                  type="object",
*                  @OA\Property(
*                      property="test",
*                      type="object",
*                      description="test"*                      ref="#/components/schemas/MyTestSchema"*                  )
*              )
*      )

У них есть несколько примеров здесь:

https://github.com/zircote/swagger-php/tree/master/Examples

но я не нашел ни одного примера относительно кодировки

Внутри здесь поле определено
https://github.com/zircote/swagger-php/blob/master/src/Annotations/MediaType.php

   /**
* A map between a property name and its encoding information.
* The key, being the property name, must exist in the schema as a property.
* The encoding object shall only apply to requestBody objects when the media type is multipart or application/x-www-form-urlencoded.
*/
public $encoding = UNDEFINED;

я пробовал encoding={"recommended"={"contentType"="multipart/form-data"}} но это бесполезно.

0

Решение

Я думаю, что единственным решением является размещение всех полей:

 * @OA\Post(
*     path="/admin/test",
*     summary="Create new Test",
*     description="Will attempt to create a new Test",
*     tags={"Admin Test"},
*     @OA\RequestBody(
*          @OA\MediaType(
*              mediaType="multipart/form-data",
*              @OA\Schema(
*                  @OA\Property(
*                      property="test[name]",
*                      type="string",
*                      description="name"*                  ),
*                  @OA\Property(
*                      property="test[desc]",
*                      type="string",
*                      description="description"*                  )
*              )
*          )
*      )
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]