Вы можете использовать @OA\Property(property="file", type="string", format="binary"),
для определения свойства файла:
/**
* @OA\Schema(
* schema="ProductRequest",
* required={"products"},
* @OA\Property(
* property="products",
* type="array",
* @OA\Items(
* @OA\Property(property="first_name", type="string"),
* @OA\Property(property="last_name", type="string"),
* @OA\Property(property="email", type="string"),
* @OA\Property(property="phone", type="string"),
* @OA\Property(property="resume", type="string", format="binary"),
* ),
* )
* )
*/
Затем вы должны установить тип носителя на вашем RequestBody
, используя @OA\MediaType
:
/**
* @OA\RequestBody(
* request="Product",
* required=true,
* description="Bulk products Body",
* @OA\MediaType(
* mediaType="multipart/form-data",
* @OA\Schema(ref="#/components/schemas/ProductRequest")
* )
* )
*/
И, наконец, на вашем @OA\Post
:
/**
* @OA\Post(
* path="/products/save",
* tags={"Product"},
* summary="Post bulk products",
* description="Return bulk products",
* @OA\RequestBody(ref="#/components/requestBodies/Product"),
* @OA\Response(response=200, ref="#/components/responses/Product")
* )
*/
См. Также документацию Swagger на Тип данных файла и Загрузка файла для получения дополнительной информации.
Обновление: если вам не нужны отдельные объявления, просто объедините их следующим образом:
/**
* @OA\Post(
* path="/products/save",
* tags={"Product"},
* summary="Post bulk products",
* description="Return bulk products",
* @OA\RequestBody(
* required=true,
* description="Bulk products Body",
* @OA\MediaType(
* mediaType="multipart/form-data",
* @OA\Schema(
* @OA\Property(
* property="products",
* type="array",
* @OA\Items(
* @OA\Property(property="first_name", type="string"),
* @OA\Property(property="last_name", type="string"),
* @OA\Property(property="email", type="string"),
* @OA\Property(property="phone", type="string"),
* @OA\Property(property="resume", type="string", format="binary"),
* )
* )
* )
* )
* )
* )
*/